我的數組是這樣的:PHP中發現價值
$arr = Array();
$arr[] = Array("foo", "bar");
$arr[] = Array("test", "hello");
現在我要檢查,如果$arr
包含其中包含foo
在第一位置的數組。
是否有任何功能,或者我應該只是循環$arr
並搜索其中的每個數組?這樣做的
我的數組是這樣的:PHP中發現價值
$arr = Array();
$arr[] = Array("foo", "bar");
$arr[] = Array("test", "hello");
現在我要檢查,如果$arr
包含其中包含foo
在第一位置的數組。
是否有任何功能,或者我應該只是循環$arr
並搜索其中的每個數組?這樣做的
一個漂亮的小方法是使用array_reduce
- 通過傳遞在總結了值1,如果foo
被發現的功能,而0,如果沒有:
$foo_found = array_reduce(
$arr,
function ($num_of_hits, $item, $search_for = 'foo') {
$num_of_hits += $item[0] === $search_for ? 1 : 0;
return $num_of_hits;
}
);
$xyz_found = array_reduce(
$arr,
function ($num_of_hits, $item, $search_for = 'xyz') {
$num_of_hits += $item[0] === $search_for ? 1 : 0;
return $num_of_hits;
}
);
var_dump($foo_found, $xyz_found);
返回1和0,原因foo
被發現一次,而xyz
被發現零次。
您的陣列:
$arr = Array();
$arr[] = Array("foo", "bar");
$arr[] = Array("foo", "hello");
我的解決方案:
echo search_in_array("foo",$arr); // This will show you the number of items found
function search_in_array($value, $arr){
$num = 0;
for ($i = 0; $i < count($arr);) {
if($arr[$i][0] == $value) {
$num++;
}
$i++;
}
return $num ;
}
我認爲有幾種不同的方式來做到這一點。請檢查以下
$arr_zero = Array();
$arr_zero[] = Array("foo", "bar");
$arr_zero[] = Array("test", "hello");
$arr_zero[] = Array("nal", "rob");
$array_one = array_shift(array_values($arr_zero));
$element = array_shift(array_values($array_one));
if($element=='foo');
echo "its ok";
或
$arr_zero = Array();
$arr_zero[] = Array("foo", "bar");
$arr_zero[] = Array("test", "hello");
$array_one = array_shift(array_values($arr_zero));
$element = reset($array_one); // First Element's Value
if($element=='foo');
echo "its ok";
或
$arr_zero = Array();
$arr_zero[] = Array("foo", "bar");
$arr_one = $arr_zero[key($arr_zero)];
echo $arr_one[key($arr_one)];
要獲取密鑰
$arr_zero = Array();
$arr_zero[] = Array("foo", "bar");
$arr_zero[] = Array("test", "hello");
$array_one = array_shift(array_values($arr_zero));
echo key($array_one); // First Element's Key
您可能能夠使用'array_walk'(HTTP:// php.net/manual/en/function.array-walk.php),儘管這是一個循環以及 –
我認爲這個任務沒有內置的PHP函數,你可能需要運行一個循環來實現這一點。 –
如果您只想檢查子數組的第一個位置,則運行一個循環並僅在第一個索引中進行搜索。 –