2010-08-18 96 views
-4

为什么这不起作用?如果(array_search((字符串)$键,$列表))foreach数组比搜索其他数组

foreach ($head as $index => $key) 
     { 
       if (array_search((string)$key,$list)) 
       { 
        $data[$index] = serialize($data[$index]); 
        $combined[$key] = isset($data[$index]) ? $data[$index] : null; 
       } else { 

        $combined[$key] = isset($data[$index]) ? $data[$index] : null; 
       } 

     } 

$列表是一个数组从php.net在

+0

会发生什么?什么不行? – 2010-08-18 09:34:00

+0

这不起作用:if(array_search((string)$ key,$ list)) – user419503 2010-08-18 09:37:45

+1

只需要注意,array_search将返回匹配元素的关键字,如果匹配元素位于关键字0处,那么if将会评估它是假的,跳进别人。 – 2010-08-18 09:39:47

回答

1

信息搜索:

array_search - 搜索阵列对于 给定值并返回相应 关键如果成功 http://se.php.net/manual/en/function.array-search.php

尝试:

if($newKey = array_search((string)$key, $list)) 

顺便问一下,你会得到 “$data” 的通知,$data没有定义。

BR,
保罗Peelen

+0

这不起作用 – user419503 2010-08-18 09:57:28

+0

你可以添加更多的代码或链接到一个phps文件或什么?用完整的代码更新您的问题,以便阅读。/P – 2010-08-18 11:34:58