我想在多维数组中找到值。我有一个这样的数组:
array(4) {
[0]=> array(2) {
[0]=> string(3) "840"
[1]=> string(3) "841" }
[1]=> array(1) {
[0]=> string(3) "842" }
[2]=> array(4) {
[0]=> string(3) "333"
[1]=> string(3) "723"
[2]=> string(3) "749"
[3]=> string(3) "750" }
[3]=> array(4) {
[0]=> string(3) "248"
[1]=> string(3) "268"
[2]=> string(3) "269"
[3]=> string(3) "270" }
}
我在这里找到了这个函数:
function in_array_r($needle, $haystack, $strict = false) {
foreach ($haystack as $item) {
if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
return true;
}
}
return false;
}
但是这个if语句:
if(!$this->in_array_r($id, $myArray) {}
不搜索…我真的不知道为什么。我做错了什么?我已经分析了我的代码多次,它似乎是好的。
编辑:我有这个:
foreach($koszyk as $Id_produkty => $Ilosc) {
if(!$this->in_array_r($Id_produkty, $myArray)) {
// If the Id_produkty variable is not in $myArray I want to skip to the next element in $koszyk
continue;
}
// Here is mySql query and I'm retrieving data depends on $Id_produkty
}
但是看起来in_array_r
函数在它之后退出了代码…它没有返回任何值
哇,当我设置error_reporting为E_ALL时,我得到了这个错误:调用未定义函数in_array_r()我必须弄清楚为什么是
EDIT2:好的,我明白了,我必须在调用in_array_r函数之前添加$this->
您是否要求在多维数组中使用in_array()函数?如果是这样,那么这段代码可能就是你要问的,尽管你的问题不清楚。
function in_multiarray($elem, $array)
{
$top = sizeof($array) - 1;
$bottom = 0;
while($bottom <= $top)
{
if($array[$bottom] == $elem)
return true;
else
if(is_array($array[$bottom]))
if(in_multiarray($elem, ($array[$bottom])))
return true;
$bottom++;
}
return false;
}
if(in_multiarray(840,$arrayValue)){
echo "value is present in the array";
}
好的,我得到了这个,我必须在调用in_array_r函数之前添加$this->
。我已经弄清楚了,因为我设置error_reporting为E_ALL错误是:调用未定义函数in_array_r()