Arama Diziler, array_search () sorunu

2 Cevap

Ben bir değer için bir dizi arama ve anahtar dönebilirsiniz herhangi bir yolu var mı, ben hiçbir başarı ile array_search() çalıştım ... Aşağıda benim dizinin bir örnektir

[0] => Array
    (
        [value] => 
        [text] => All Call Types
    )

[1] => Array
    (
        [value] => enquiry
        [text] => Renovation Enquiry
    )

[2] => Array
    (
        [value] => msg
        [text] => Message to Pass on
    ) ...

Benim nihai hedefi dönüştürmek için

value ile text.

İşte ben denedim ne:

$key = array_search($row['call_type'], $type_list);
$call_type_name = $type_list[$key]['text'];

Teşekkürler!

2 Cevap

Bu sonra ne olduğunu? Belirli bir değerin oluşumu pozisyonu bulma?

function findKeyByField( $arr, $name, $val ){
$pos = 0;
foreach ($arr as $subArr ):

    foreach ($subArr as $key => $value):
        if( $key == $name and $value == $val ){
            return $pos;
        }
    endforeach;

$pos++;
endforeach;
}

Bunu sağlayan kısa bir fonksiyon yazabiliriz:

function findInArray($array, $needle)
{
    for ($i = 0; $i < sizeof($array); $i++)
    {
        if ($array[$i]['value'] == $needle) return $array[$i]['text'];
    }
}

Kullanımı örnek:

$call_type_name = findInArray($type_list, 'msg');