• 27-08-2014, 19:38:06
    #1
    Reveloper
    Merhaba,

    Bir dil dosyam var dil dosyasını Türkçe biçimlendirilmiş şekilde yaptık. Lakin dil çalışması yaptığımız firma array'lar üzerinde değişiklikler yapmış

    örneğin:

    english.php:
    $_ADMINLANG['twofact']['title'] = "Two-Factor Authentication";


    turkish.php
    $_ADMINLANG['twofa']['title'] = "Two-Factor Authentication";


    3000 satır yazı var ben bu ikisini karşılaştırıp array'ı farklı olanları nasıl ayırt edebilirim?
  • 27-08-2014, 21:12:46
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @Burti;

    <?php
    
    	$orjinal = array(
    		'x' => 1,
    		'y' => 2,
    		'z' => 3,
    	);
    
    	$duzenlenmis = array(
    		'x' => 1,
    		'y' => 2,
    		'z' => 3,
    		'x_' => 1,
    		'y_' => 2,
    		'z_' => 3,
    	);
    
    	$farklilar = $duzenlenmis;
    
    	foreach ($orjinal as $anahtar => $deger)
    	{
    		if (isset($farklilar[$anahtar]))
    		{
    			unset($farklilar[$anahtar]);
    		}
    	}
    
    	print_r($farklilar);
    
    	/*
    		ÇIKTI:
    
    		Array
    		(
    			[x_] => 1
    			[y_] => 2
    			[z_] => 3
    		)
    
    	*/
  • 27-08-2014, 21:18:54
    #3
    Reveloper
    saintx adlı üyeden alıntı: mesajı görüntüle
    @Burti;

    <?php
    
    	$orjinal = array(
    		'x' => 1,
    		'y' => 2,
    		'z' => 3,
    	);
    
    	$duzenlenmis = array(
    		'x' => 1,
    		'y' => 2,
    		'z' => 3,
    		'x_' => 1,
    		'y_' => 2,
    		'z_' => 3,
    	);
    
    	$farklilar = $duzenlenmis;
    
    	foreach ($orjinal as $anahtar => $deger)
    	{
    		if (isset($farklilar[$anahtar]))
    		{
    			unset($farklilar[$anahtar]);
    		}
    	}
    
    	print_r($farklilar);
    
    	/*
    		ÇIKTI:
    
    		Array
    		(
    			[x_] => 1
    			[y_] => 2
    			[z_] => 3
    		)
    
    	*/
    olmadı gene amcaoğlu hatalılar gözükmedi
  • 27-08-2014, 21:22:33
    #4
    @Burti; örnek dosya gönderebilir misin? Denemeler yapacağım. Bu şekilde sonuca ulaşabiliriz.
  • 27-08-2014, 22:03:13
    #5
    Eger her satırda aynı veri varsa yani ;
    turkish.php 51 satır ;
    $_ADMINLANG['hehe']['falanfilan'];
    enghlish.php 51 satır ;
    $_ADMINLANG['hehe']['falanfilan'];

    ise iki dosyayıda satır satır analiz edip aynımı diye bakılabilir ?
  • 27-08-2014, 22:15:50
    #6
    Burti adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Bir dil dosyam var dil dosyasını Türkçe biçimlendirilmiş şekilde yaptık. Lakin dil çalışması yaptığımız firma array'lar üzerinde değişiklikler yapmış

    örneğin:

    english.php:
    $_ADMINLANG['twofact']['title'] = "Two-Factor Authentication";


    turkish.php
    $_ADMINLANG['twofa']['title'] = "Two-Factor Authentication";


    3000 satır yazı var ben bu ikisini karşılaştırıp array'ı farklı olanları nasıl ayırt edebilirim?
    array_intersect ile kolayca yapabilirsiniz örnek ;

    $_ADMINLANG['twofact']['title'] = "Two-Factor Authentication";
    $_ADMINLANG['twofa']['title'] = "Two-Factor Authentication";
    
    print_r(array_intersect($_ADMINLANG['twofact'], $_ADMINLANG['twofa']) );
  • 27-08-2014, 23:37:58
    #7
    array_diff_key ile dizilerin keylerini karşılaştırabilirsiniz. Birinci dizide bulunup 2. dizide bulunmayan indisleri yazdırabilirsiniz.

    <?php
    $array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
    $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);
    
    var_dump(array_diff_key($array1, $array2));
    ?>
    Çıktı

    array(2) {
      ["red"]=>
      int(2)
      ["purple"]=>
      int(4)
    }
  • 28-08-2014, 03:02:31
    #8
    Reveloper
    Misafir adlı üyeden alıntı: mesajı görüntüle
    array_diff_key ile dizilerin keylerini karşılaştırabilirsiniz. Birinci dizide bulunup 2. dizide bulunmayan indisleri yazdırabilirsiniz.

    <?php
    $array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
    $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);
    
    var_dump(array_diff_key($array1, $array2));
    ?>
    Çıktı

    array(2) {
      ["red"]=>
      int(2)
      ["purple"]=>
      int(4)
    }
    tam olarak aradığım bu :
    ancak bunu array olarak görmüyor
    <?php
    
    # Global
    $orjinal['global']['hometitle'] = "Admin Summary";
    $orjinal['global']['searchfilter'] = "Search/Filter";
    $orjinal['global']['search'] = "Search";
    $orjinal['global']['recordsfound'] = "Records Found";
    $orjinal['global']['page'] = "Page";
    $orjinal['global']['of'] = "of";
    $orjinal['global']['jumppage'] = "Jump to Page";
    $orjinal['global']['go'] = "Go";
  • 28-08-2014, 03:13:56
    #9
    @Burti; array_diff_key_recursive ile yapabilirsin.

    /**
     * http://php.net/array_diff_key recursive implementation.
     * 
     * @todo Support variadic input.
     * @param array $arr1 The array with master keys to check.
     * @param array $arr2 An array to compare keys against.
     * @return array
     */
    function array_diff_key_recursive (array $arr1, array $arr2) {
        $diff = array_diff_key($arr1, $arr2);
        $intersect = array_intersect_key($arr1, $arr2);
        
        foreach ($intersect as $k => $v) {
            if (is_array($arr1[$k]) && is_array($arr2[$k])) {
                $d = array_diff_key_recursive($arr1[$k], $arr2[$k]);
                
                if ($d) {
                    $diff[$k] = $d;
                }
            }
        }
        
        return $diff;
    }