我有来自数据库的以下数组:
Array (
[0] => stdClass Object (
[cSize] => 120x60
[cFilename] => 29955_120x60.png
[dtLastUpdated] => 2017-06-11T18:18:34-07:00
[cURL] => http://logos.formetocoupon.com/120x60/29955.png
)
[1] => stdClass Object (
[cSize] => 280x210
[cFilename] => 29955_280x210.png
[dtLastUpdated] => 2017-08-15T23:31:05-07:00
[cURL] => http://logos.formetocoupon.com/280x210/29955.png
)
[2] => stdClass Object (
[cSize] => 600x450
[cFilename] => 29955_600x450.png
[dtLastUpdated] => 2017-08-15T23:31:05-07:00
[cURL] => http://logos.formetocoupon.com/600x450/29955.png
)
[3] => stdClass Object (
[cSize] => 88x31
[cFilename] => 29955_88x31.png
[dtLastUpdated] => 2017-06-11T18:18:34-07:00
[cURL] => http://logos.formetocoupon.com/88x31/29955.png
)
)
我想知道包含图像大小120x60
的数组的索引。
我做了这个
$data=json_decode($value->aLogos);
$searchValue="120x60";
if (($key = array_search($searchValue, $data)) !== false) {
print_r($key);
}
但它什么都没打印。我该如何解决这个问题?任何建议都非常感谢。感谢
答案 0 :(得分:2)
那么你的第一个问题是你不是在搜索一个数组数组而是搜索一个对象数组。
你的第二个问题是即使它是一个数组数组,array_search
也不会做多维数组。
相反,在原始PHP中考虑这样的事情:
$data = json_decode($value->aLogos);
$searchValue="120x60";
foreach($data as $key => $obj) {
if ($searchValue == $obj->cSize) {
break;
}
}
echo $key; //holds key of first object with desired value
或者,请在此处查看array_search_deep
方法:http://brandonwamboldt.github.io/utilphp/#array_search_deep
答案 1 :(得分:1)
你需要使用key函数
大致做这样的事情foreach ($data as $value){
if ($value->cSize=="120x60"){
echo key($data);
}