我有以下数组:
$array = array(
'item-img-list' => array(
array(
'image-type' => 1,
'image-url' => 'http://img07.allegroimg.pl/...'
),
array(
'image-type' => 2,
'image-url' => 'http://img07.allegroimg.pl/...'
),
array(
'image-type' => 3,
'image-url' => 'http://img07.allegroimg.pl/...'
)
)
)
如何获得第一个'image-url'值'image-type'='2'? 我试着通过这段代码做到这一点,但没有:
$zdjecia = $item['item-img-list'];
foreach($zdjecia as $zdjecie) {
foreach($zdjecie as $key=>$value) {
if($key == "image-type" && $value == "2") {
$zdjecie_aukcji = $key['image-url'];
}
}
}
感谢您提供任何帮助!
作品!
$searchKey = 2;
foreach($zdjecia as $zdjecie) {
if (**$zdjecie->{'image-type'}** == $searchKey){
$zdjecie_aukcji = **$zdjecie->{'image-url'}**;
break;
}
}
答案 0 :(得分:2)
修改为:
$zdjecia = $array['item-img-list'];
foreach($zdjecia as $zdjecie) {
if($zdjecie['image-type'] == '2') {
$zdjecie_aukcji = $zdjecie['image-url'];
}
}
答案 1 :(得分:2)
$zdjecia = $item['item-img-list'];
$searchKey = 2;
foreach($zdjecia as $zdjecie) {
if ($zdjecie['image-type'] == $searchKey)
$zdjecie_aukcji = $zdjecie['image-url'];
break;
}
}
或(PHP> = 5.5)
$zdjecia = $item['item-img-list'];
$searchKey = 2;
$results = array_column(
$zdjecia,
'image-url',
'image-type'
);
$zdjecie_aukcji = $results[$searchKey];
答案 2 :(得分:2)
我使用自定义函数的建议,我的项目在多维数组中按键查找值:
function array_search_multi($array, $key, $value)
{
$results = array();
if (is_array($array))
{
if (isset($array[$key]) && $array[$key] == $value)
$results[] = $array;
foreach ($array as $subarray)
$results = array_merge($results, array_search_multi($subarray, $key, $value));
}
return $results;
}
<强>用法:强>
$results = array_search_multi($array, 'image-type', '2');
echo $results[0]['image-url'];
输出
http://img07.allegroimg.pl/...
答案 3 :(得分:2)
在
之后立即添加break;
$zdjecie_aukcji = $key['image-url'];
答案 4 :(得分:2)
为什么不这么简单: -
$array = array(
'item-img-list' => array(
array(
'image-type' => 1,
'image-url' => 'http://img07.allegroimg.pl/...'
),
array(
'image-type' => 2,
'image-url' => 'http://img07.allegroimg.pl/...'
),
array(
'image-type' => 3,
'image-url' => 'http://img07.allegroimg.pl/...'
)
)
);
$newArray = array();
foreach($array['item-img-list'] as $k=>$v){
$newArray[$v['image-type']] = $v['image-url'];
}
输出: -
Array
(
[1] => http://img07.allegroimg.pl/...
[2] => http://img07.allegroimg.pl/...
[3] => http://img07.allegroimg.pl/...
)
或
echo $newArray[2];
你也可以检查这样的键:
if (array_key_exists(2, $newArray)) {
// Do whatever you want
}
答案 5 :(得分:2)
foreach($zdjecia as $zdjecie) {
foreach($zdjecie as $key=>$value) {
if($key == "image-type" && $value == "2") {
$zdjecie_aukcji = $zdjecie['image-url'];
}
}
}