我设法在某种程度上做到这一点并且忘记了怎么做。我一直得到元素关联的未定义偏移通知(例如,$ arr [$ i] =>“某事”)。例如。对于以下内容:
for($i=0;$i<count($arr);$i++) {
if($a = strstr($arr[$i], "str"))
{
print "Found: ". $a. "<br>";
}
else {
if($i >= count($arr))
{
print "Couldn't find <i>str</i>.<br>";
return false;
}
}
}
这将无法工作,并将输出未定义的偏移通知。非常感谢任何帮助!
答案 0 :(得分:1)
您应该使用foreach
loop而不是for
来迭代数组。您的代码应如下所示:
foreach( $arr as $item){
if(($a = strstr($item, "str")) !== false){
print "Found: ". $a. "<br>";
}
}
strstr()
在最后一个字符匹配时可能会返回''
,因此使用!== false
返回字符串的部分,如果未找到needle,则返回FALSE。
你必须能够处理关联数组:
for
比你必须使用这样的代码:
$arr = (
'key1' => 'val1',
'key2' => 'val2',
...
);
请改用$keys = array_keys( $arr);
$count = count( $keys);
for( $i = 0; $i < $count; $i++){
$item = $arr[ $keys[$i]];
}
。)
答案 1 :(得分:0)
for($i=0;$i<count($arr);$i++) {
if($a = strstr($arr[$i], "str")) {
print "Found: ". $a. "<br>";
} else {
if($i >= count($arr)) {
print "Couldn't find <i>str</i>.<br>";
return false;
}
}
}
首先,如果函数缺少括号。
答案 2 :(得分:0)
我在第二行添加了你缺少的括号,它适用于我
for($i=0;$i<count($arr);$i++) {
if($a = strstr($arr[$i], "str")) {
print "Found: ". $a. "<br>";
} else {
if($i >= count($arr)) {
print "Couldn't find <i>str</i>.<br>";
return false;
}
}
}
答案 3 :(得分:0)
你说过这样的话吗?
foreach ($arr as $value) {
if(strstr($value, $a)) {
print "Found: ". $a . "<br />";
}
}
对于你想要展示的印刷品,我认为$ a是你在这个数组中寻找的东西。