我发现很难解释但是我的页面有一个包含所有用户的多维数组,我需要从内部数组中获取值,而不需要知道主键。
我对阵列的熟悉程度还不高,现在我完全陷入了困境。我使用的功能有2个参数。第一个是用户的输入id,第二个是完整用户列表的数组。
function userInfo($i, $users){
foreach($users['data'] as $user){
if($i = $user['id']){
return $user['SOMENAME?']['name'];
}
}
}
以下是我正在使用的数组示例:
{
"data": {
"Doe": {
"id": 266,
"title": "Doe title",
"name": "Doe",
"key": "Some key"
},
"John": {
"id": 412,
"title": "John title",
"name": "John",
"key": "Some key"
}
}
我现在的函数只是返回Doe(数组中的第一个值),无论那里有多少数组。
当我不知道该特定阵列的主键名称时,如何返回标题或任何其他值?
答案 0 :(得分:3)
你的if语句中有一个错误,你要分配一个值,而不是比较它(= vs ==或===)。
出于功能的目的,我不认为您需要知道密钥,因为您已经在数组中。例如
function championInfo($i, $users){
foreach($users['data'] as $index => $user){
if($i == $user['id']){
return $user['name'];
}
}
}
答案 1 :(得分:1)
foreach($users['data'] as $key => $user){
if($i = $user['id']){
return $champion[$key]['name'];
}
}
答案 2 :(得分:0)
foreach($collecion as $key => $val){
那应该得到你的结果。
答案 3 :(得分:0)
试试这个;
foreach ($array as $key => $value) {
echo "ID: {$value['id']}, Title: {$value['title']}, Name: {$value['name']}, Key: {$value['key']}<br />";
}
另一个版本(如果您认为这更具可读性)
foreach ($array as $key => $value) {
list($id, $title, $name, $key) = array_values($value);
echo "ID: {$id}, Title: {$title}, Name: {$name}, Key: {$key}<br />";
}