Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对于每个变量,使用变量键获取一个值_Php_Arrays - Fatal编程技术网

Php 对于每个变量,使用变量键获取一个值

Php 对于每个变量,使用变量键获取一个值,php,arrays,Php,Arrays,我发现很难解释,但是我的页面有一个包含所有用户的多维数组,我需要在不知道主键的情况下从内部数组中获取值 我还没有阵列方面的经验,我现在完全被卡住了。我使用的函数有两个参数。第一个是用户的输入id,第二个是完整用户列表的数组 function userInfo($i, $users){ foreach($users['data'] as $user){ if($i = $user['id']){ return $user['SOMENAME?']['

我发现很难解释,但是我的页面有一个包含所有用户的多维数组,我需要在不知道主键的情况下从内部数组中获取值

我还没有阵列方面的经验,我现在完全被卡住了。我使用的函数有两个参数。第一个是用户的输入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(数组中的第一个值),不管其中有多少数组

当我不知道特定数组的主键名称时,如何返回标题或任何其他值

foreach($collecion as $key => $val){
这应该会得到你的结果

foreach($users['data'] as $key => $user){
    if($i = $user['id']){
        return $champion[$key]['name'];
    }
}

这应该会得到您的结果。

您的if语句中有一个错误,您正在分配一个值,而不是比较它(=vs==或==)

foreach($users['data'] as $key => $user){
    if($i = $user['id']){
        return $champion[$key]['name'];
    }
}
就函数而言,我认为您不需要知道密钥,因为您已经在数组中了。例如

 function championInfo($i, $users){
     foreach($users['data'] as $index => $user){
        if($i == $user['id']){
            return $user['name'];
        }
    }
}

if语句中有一个错误,您正在分配一个值,而不是比较它(=vs==或==)

就函数而言,我认为您不需要知道密钥,因为您已经在数组中了。例如

 function championInfo($i, $users){
     foreach($users['data'] as $index => $user){
        if($i == $user['id']){
            return $user['name'];
        }
    }
}
试试这个

foreach ($array as $key => $value) {
    echo "ID: {$value['id']}, Title: {$value['title']}, Name: {$value['name']}, Key: {$value['key']}<br />";
}
foreach($key=>$value的数组){
echo“ID:{$value['ID']},Title:{$value['Title']},Name:{$value['Name']},Key:{$value['Key']}
”; }
另一个版本(如果您认为这更具可读性)

foreach($key=>$value的数组){
列表($id,$title,$name,$key)=数组值($value);
echo“ID:{$ID},Title:{$Title},Name:{$Name},Key:{$Key}
”; }
试试这个

foreach ($array as $key => $value) {
    echo "ID: {$value['id']}, Title: {$value['title']}, Name: {$value['name']}, Key: {$value['key']}<br />";
}
foreach($key=>$value的数组){
echo“ID:{$value['ID']},Title:{$value['Title']},Name:{$value['Name']},Key:{$value['Key']}
”; }
另一个版本(如果您认为这更具可读性)

foreach($key=>$value的数组){
列表($id,$title,$name,$key)=数组值($value);
echo“ID:{$ID},Title:{$Title},Name:{$Name},Key:{$Key}
”; }
冠军从哪里来?它不在本项目的范围内function@MarkBaker我将名称空间更改为更具可读性的名称空间,但没有正确地进行双重检查。
$champion
来自哪里?它不在本项目的范围内function@MarkBaker我将名称空间更改为更具可读性的名称空间,但没有正确地进行双重检查。