0

我有以下数组:

print_r($all_projects);
--------------------------------
Array ( 
       [0] => Array ( 
                     [pro_id] => 7 
                     [0] => 7 
                    ) 
       [1] => Array ( 
                     [pro_id] => 20 
                     [0] => 20 
                     ) 
) 

如何pro_id在 foreach 循环中抓取每个?
我可以在网上找到很多关于如何创建数组以及如何从数组中获取键和值的信息。但是我很难在一个数组中抓取一个键的值。

我目前每个都有这个:

foreach ($all_projects as $project => $project_id){ 
echo $project_id;
}

依次返回以下内容:

Array
Array

这对我来说很有意义,但是我该如何深入阵列呢?

4

5 回答 5

3
foreach($all_projects as $project) {
    echo $project['pro_id'];
}
于 2013-06-27T15:40:28.557 回答
0

如果我们以这种方式遍历$all_projectswith循环,foreach

foreach ($all_projects as $key => $project) {
    echo($key);
}

then$key实际上是 0、1 等,而不是 7 或 20——正如您可能想要的那样——并且$project将是项目的内容。

在您的情况下,我假设您想要的“项目 id”存储在“项目”数组本身中,因此正如其他建议的那样,您应该编写类似

foreach($all_projects as $project) { // omitting the $key part since you don't need it
    echo($project['pro_id']);
}

这将打印pro_id您想要的实际“项目 ID”。

如果您要改进此代码,您可能希望以$all_projects这种方式重组

$all_projects = array();
$all_project[7] = $some_project; // your first project with id 7
$all_project[20] = $some_other_project; // your second project with id 20

那么您将能够使用您的原始代码循环:

foreach($all_projects as $project_id => $project) {
    echo($project_id);
}

$project_id7、20 等,并$project成为您项目的内容。

希望这能回答你的问题!

于 2013-06-27T15:59:00.437 回答
0

尝试:

foreach ($all_projects as $project => $project_id){ 
  echo $project_id['pro_id'];
}

甚至更清洁:

foreach ($all_projects as $project){ 
  echo $project['pro_id'];
}
于 2013-06-27T15:41:33.590 回答
0
foreach($all_projects as $KEY => $VALUE) {
  echo "KEY: $KEY - PRO_ID: {$VALUE['pro_id']}";
}

在你的情况下,你会想要:

foreach ($all_projects as $project_id => $project) { 
  echo $project_id . " = " . $project['pro_id'];
}
于 2013-06-27T15:42:07.157 回答
0

现在使用 PHP5.5,你有一个简单的方法来做到这一点:

foreach ($all_projects as list($id))
    echo $id;

和老办法:

foreach ($all_projects as $project)
    echo $project['pro_id'];

希望它会帮助你!

于 2013-06-27T15:53:00.193 回答