代码是:
<?php
$notes = array("Main/folder/02/12.jpg = twelve",
"Main/folder/02/16.jpg = sixteen"
);
$imglist = array( "12.jpg",
"13.jpg",
"14.jpg",
"15.jpg",
"16.jpg"
);
for ($i=0;$i<(count($imglist));$i++){
if(in_array($imglist[$i], $notes)){
echo $imglist[$i];
//Get key($notes) and //Cant figure out how to implement this key();
echo $notes[$key];
} //if ENDS
} //for ENDS
?>
我需要的是,对于$ i = 0和$ i = 4,if()应返回TRUE&amp;做回声。
伪代码/逻辑是:
例如,此for循环的所需输出应为:
12.jpg Main/folder/02/12.jpg = twelve
16.jpg Main/folder/02/16.jpg = sixteen
问题是,现在所有代码都只输出无。意味着如果条件没有返回TRUE。理论上,当$ i为0&amp;时,它应该返回TRUE。 4.我的if()条件错了吗? php没有将$ imglist [$ i]作为字符串吗?我应该使用strpos吗?
答案 0 :(得分:3)
in_array()
使用宽松的比较来搜索元素,但不会产生您正在寻找的结果。
相反,您需要使用自己的逻辑(使用strpos()
猜测)来实现您想要的功能,如下所示:
foreach( $imglist as $image_key => $image)
foreach( $notes as $notes_key => $note)
if( !(strpos( $note, $image) === false))
echo "$image $note\n";
12.jpg Main/folder/02/12.jpg = twelve
16.jpg Main/folder/02/16.jpg = sixteen
答案 1 :(得分:0)
您可以使用strpos()
来实现此目的$notes = array("Main/folder/02/12.jpg = twelve",
"Main/folder/02/16.jpg = sixteen"
);
$imglist = array( "12.jpg",
"13.jpg",
"14.jpg",
"15.jpg",
"16.jpg"
);
foreach($imglist as $image){
foreach($notes as $key => $note){
$position = strpos($note,$image);
if ($position !== false){
echo "$image $note <br>";
}
}
}