我试着这样:
<?php
$list_team = array(
(object)array(
'id' => 1,
'name' => 'chelsea.jpg'
),
(object)array(
'id' => 2,
'name' => 'mu.jpg'
),
(object)array(
'id' => 3,
'name' => 'arsenal.jpg'
),
);
$team = 'chelsea.jpg';
echo '<pre>';print_r($team);echo '</pre>';
echo '<pre>';print_r($list_team);echo '</pre>';
foreach($list_team as $key => $value) {
if($value->name == $team)
$team_selected = $team;
}
echo '<pre>';print_r($team_selected);echo '</pre>';
die();
?>
如果代码执行了,结果如下:
chelsea.jpg
Array
(
[0] => stdClass Object ( [id] => 1
[name] => chelsea.jpg
)
[1] => stdClass Object
(
[id] => 2
[name] => mu.jpg
)
[2] => stdClass Object
(
[id] => 3
[name] => arsenal.jpg
)
)
chelsea.jpg
使用循环的代码
但是,我不想使用循环
我该怎么做?
答案 0 :(得分:1)
使用array_search()
和array_column()
<?php
$list_team = array(
(object)array(
'id' => 1,
'name' => 'chelsea.jpg'
),
(object)array(
'id' => 2,
'name' => 'mu.jpg'
),
(object)array(
'id' => 3,
'name' => 'arsenal.jpg'
),
);
$team = 'chelsea.jpg';
// array column, returns all value of sub array, with key name
// array_search will return key
$key = array_search($team, array_column($list_team, 'name'));
if($key!==false){
// your object will be
print_r($list_team[$key]);
// access remaining..
echo $list_team[$key]->name.' '. $list_team[$key]->id.PHP_EOL;
}
?>
答案 1 :(得分:1)
尝试以下方法:
$key = array_search($team, array_column($list_team, 'name'));
$team_selected = $list_team[$key]->name;
这将使用name
搜索数组并返回并返回主数组的key
,您可以使用它来访问嵌套数组的内容并将值赋给。 $team_selected
答案 2 :(得分:0)
如果要访问多维数组中的特定属性,可以执行以下操作。
例如,返回第一个数组的ID:
echo $list_team[0]["id"];
只需将[0]
更改为[1]
或任何提及您要调用的数组,然后只需使用该属性即可。但是如果你想打印整个阵列,我真的建议你继续循环。使用循环,您确定可以获得所有元素。让我们说你像我说的那样硬编码,然后一个月后你添加了10个新数组,所以你必须编辑你的整个代码。