Dizi arama Sorunu

2 Cevap php

I am trying to find values inside an array. This array always starts with 0. unfortunately array_search start searching with the array element 1. So the first element is always overlooked.

Nasıl 1 ile başlamak için bu dizi "shift", ya da dizi-arama 0 ile başlangıç ​​yapabilir? Dizi, bir XML web servis üzerinden geliyor, bu yüzden sonuçlarını değiştirmek ralli olamaz.

2 Cevap

See the manual, it might help you: http://www.php.net/manual/en/function.array-search.php

Ne yapmaya çalışıyoruz biri tarafından tuşunu artırmak kullanmak ise, bunu yapabilirsiniz:

function my_array_search($needle, $haystack, $strict=false) {
     $key = array_search($needle, $haystack, $strict);
     if (is_integer($key)) $key++;
     return $key;
}
my_array_search($xml_service_array);

array_search not indeksi 1 aramaya başlıyor, bu örneği deneyin.:

<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('blue', $array);  // $key = 0
?>

Sorun kodu ile ne olursa olsun, o ilk unsur dizini 0'dır olduğunu değil.

Bu dönüş değerini kontrol etmek için kullanılması == yerine === içinde olduğunuzu daha olasıdır. Ilk elemanı gösteren, 0 döndürür array_search ise, aşağıdaki kod çalışmaz:

// doesn't work when element 0 is matched!
if (false == array_search(...)) { ... }

Bunun yerine, must kontrol değeri ve tipi hem karşılaştırır ki, === kullanarak

// works, even when element 0 is matched
if (false === array_search(...)) { ... }