如何在使用PHP的foreach中使用键和值?

如何在使用PHP的foreach中使用键和值?

问题描述:

我有以下friendDetails阵列输出,如何在使用PHP的foreach中使用键和值?

阵列 ( [0] =>数组 ( [ID] => 1 [如first_name] => Aruun [姓氏] =>萨库马尔 [相片] => JPG )

[1] => Array 
    (
     [id] => 2 
     [first_name] => senthilkumar 
     [last_name] => Kumar 
     [photo] => jpg 
    ) 

) 我用下面的代码段,以得到最终输出

foreach($friendDetails as $value){ 
     array_push($friendList, $value[id].".".$value[photo]."-".$value[first_name]." ".$value[last_name]); 
    } 

最终的输出是,

Array 
(
    [0] => 1.jpg-Aruun Sukumar 
    [1] => 2.jpg-senthilkumar Kumar 
    [2] => 18.jpg-senthilkumar sugumar 
) 

在这里我得到通知错误与精确的输出。我在代码上做了什么错误? 有没有其他方法可以获得最终输出?

由于您没有将数组的键放在引号中,因此会出现通知错误。

它应该是:

foreach($friendDetails as $value){      
    array_push($friendList, $value['id'].".".$value['photo']."-".$value['first_name']." ".$value['last_name']);      
} 

看到http://php.net/manual/en/language.types.array.php

+0

谢谢,非常helpful.It现在工作 – mymotherland 2011-06-17 06:55:07

你需要把你的左右键标识报价:

$value['id'] . "." . $value['photo'] 

等。请参阅“为什么$ foo的[bar]错了?”在http://php.net/manual/en/language.types.array.php

在你的阵列值使用语录:

foreach($friendDetails as $value){       
    array_push($friendList, $value['id'].".".$value['photo']."-".$value['first_name']." ".$value['last_name']);      
} 

$friendList = array();  
foreach($friendDetails as $key=> $value){      
     $friendList[] = $value['id'].".".$value['photo']."-".$value['first_name']." ".$value['last_name']);      
    } 

试试这个,你会得到两个键和值:

foreach ($friendDetails as $key_name => $key_value) { 
    print "Key = " . $key_name . " Value = " . $key_value . "<BR>"; 
    } 

两件事情:

  • 你需要在数组键上加引号(“)在array_push(即$value["id"]
  • 确保您在foreach之前将$friendList定义为数组。

工作的示例:

<?php 

$friendDetails = array(
    array(
    'id' => 1, 
    'first_name' => 'Aruun', 
    'last_name' => 'Sukumar', 
    'photo' => 'jpg' 
), 
    array(
    'id' => 2, 
    'first_name' => 'senthilkumar', 
    'last_name' => 'Kumar', 
    'photo' => 'jpg' 
) 
); 

$friendList = array(); 

foreach($friendDetails as $value){      
array_push($friendList, $value["id"].".".$value["photo"]."-".$value["first_name"]." ".$value["last_name"]);      
} 

print_r($friendList); 

?>