• 02-10-2019, 21:53:12
    #1
    Merhabalar,

    3 katmanlı dizi var elimde.
    ilk katmanında sayfa özelliği mevcut örn. "header"
    ikinci katmanında sayfa idsi örn: 263
    üçüncü katmanda bu sayfanın anahtar kelimesi mevcut örn: test

    Ben dizinin ilk katmanında header olduğunu biliyorum fakat ikinci katmanındaki id'yi bilmiyorum. Üçüncü katmandaki anahtar kelimeyi karşılaştırıp id'yi elde etmek istiyorum( dizinin içinde test geçiyorsa o dizinin id'sini göster).
    PHP ile bunu nasıl yapabilirim acaba veya herhangi bir dilde.

    Arrayımın orj. yapısı:
    s:6:"header";a:2:{i:3457;a:1:{i:0;s:27:"include/singular/front_page";}i:251;a:1:{i:0;s:15:"include/general";}}
    Örn dizi:
    [header] => Array
    (
    [3457] => Array
    (
    [0] => test
    )
    
    [251] => Array
    (
    [0] => abc
    )
    
    )
    Teşekkürler.
  • 02-10-2019, 21:58:11
    #2
    array_map ile yapabilirsin
  • 02-10-2019, 22:02:06
    #3
    recepuncu adlı üyeden alıntı: mesajı görüntüle
    array_map ile yapabilirsin
    Nasıl yapabilirim acaba, fikriniz nedir.
  • 02-10-2019, 22:08:31
    #4
    test etmedim ama şu şekilde olması lazım.

    for ($x=0;$x<5;$x++){ //burada 5 tane diziyi kontrol ediyor
    if ($dizi[$x][0]=="test") { // eğer dizinin 0 anahtarında test varsa
    $yenidizi=array_keys($dizi[x]); //bulunan dizinin tüm anahtarlarını diziye atıyor
    print_r ($yenidizi); //yeni dizideki idyi kullanmak istersen $yenidizi[1] ekrana yazdırabilirsin
    } // if sonu
    } //for sonu
  • 02-10-2019, 22:16:06
    #5
    U_uR adlı üyeden alıntı: mesajı görüntüle
    test etmedim ama şu şekilde olması lazım.

    for ($x=0;$x<5;$x++){ //burada 5 tane diziyi kontrol ediyor
    if ($dizi[$x][0]=="test") { // eğer dizinin 0 anahtarında test varsa
    $yenidizi=array_keys($dizi[x]); //bulunan dizinin tüm anahtarlarını diziye atıyor
    print_r ($yenidizi); //yeni dizideki idyi kullanmak istersen $yenidizi[1] ekrana yazdırabilirsin
    } // if sonu
    } //for sonu
    Mantıklı, deniyorum şimdi, teşekkür ediyorum
  • 03-10-2019, 09:50:59
    #6
    Bu şekilde de deneyebilirsin;

    $array = array('header' => array('3457' => Array('0' => 'test'), '3458' => Array('0' => 'kitap test') ));
    
    $ids = array();
    array_walk($array['header'], function ($value, $key) use ( &$ids ) {
    if (strpos($value[0], 'test') !== false) {
            $ids[] = $key;
        }
    });
    
    var_dump( $ids );
  • 03-10-2019, 12:24:33
    #7
    recepuncu adlı üyeden alıntı: mesajı görüntüle
    Bu şekilde de deneyebilirsin;

    $array = array('header' => array('3457' => Array('0' => 'test'), '3458' => Array('0' => 'kitap test') ));
    
    $ids = array();
    array_walk($array['header'], function ($value, $key) use ( &$ids ) {
    if (strpos($value[0], 'test') !== false) {
            $ids[] = $key;
        }
    });
    
    var_dump( $ids );
    Teşekkür ederim.