dqyitt2954
2014-10-16 12:03
浏览 71
已采纳

在php中从多个数组中取出字段

I'm trying to take out files out of an Array that defined like this:

$arr[$j][$player_number]['field_name'];

I have 2 fields in the array : names and rating. The output when I'm printing the array is :

Array ( [$j] => Array ( [names] => "some name" [rating] => "some number" ))

My problem is that I can't take the fields "names" and "rating" at the same loop when I'm doing "for each". When I'm doing it separately - it works but I can't sort it in a table normally. I know that I have to use the "list" in some way, I tried to execute it, but without success.

What I'm doing is :

function get_array_column($array, $column)
    {
        $ret = array();
        foreach ($array as $row) $ret[] = $row[$column];
        return $ret;
    }
    for($i=1;$i<=$num_groups;$i++)
    {   
        $a = array();
        $a = get_array_column($arr[$i],'names');
        foreach ($a as $value)
           {
             echo $value;
           }
    }

Thanks.

图片转代码服务由CSDN问答提供 功能建议

我正在尝试从这样定义的数组中取出文件: \ n

$ arr [$ j] [$ player_number] ['field_name'];

我在数组中有2个字段: 名称和评级。 我打印数组时的输出是:

 数组([$ j] =&gt;数组([名称] =&gt;“某些名称”[rating] =  &gt;“某个数字”))
   
 
 

我的问题是我不能在同一个循环中取字段“名称”和“评级” 我做“为每个人”。 当我单独做它 - 它可以工作,但我不能正常在表中排序。 我知道我必须以某种方式使用“列表”,我试图执行它,但没有成功。

我正在做的是:

 <  code> function get_array_column($ array,$ column)
 {
 $ ret = array(); 
 foreach($ array as $ row)$ ret [] = $ row [$ column]; 
 return $ ret  ; 
} 
 for($ i = 1; $ i&lt; = $ num_groups; $ i ++)
 {
 $ a = array(); 
 $ a = get_array_column($ arr [$ i],'  names'); 
 foreach($ a as $ value)
 {
 echo $ value; 
} 
} 
   
 
 

谢谢。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dongshanjin8947 2014-10-16 12:25
    已采纳

    once you defined your array as

    [0] => Array ( [name] => name0 
    [fieldname] => fieldname0 ) [1] => Array ( [name] => name1 [fieldname] => fieldname1 )
    
    foreach ($arr as $key){
    
    echo $key['names'];
    
    echo $key['ratings'];
    
    }
    
    点赞 打赏 评论
  • douyongwan5946 2014-10-16 12:18

    You are having a three dimensional array.

    1. dimension indicated by $j
    2. dimension indicated by $player_number
    3. dimension indicated by $field_name

    Maybe you want something like this: An array which is indicated by the number of the player $array[$player_number]

    In this array you can add stdClass objects, which contain the name and the rating of the player. The code could look like this

    //create players array
    $players = array();
    //create a player
    $player = new stdClass();
    $player->number = 342;
    $player->name = "Matt Click";
    $player->rating = 13;
    // add a player to the players array
    $players[$player->number] = $player;
    ... // some code
    // foreach through the players
    foreach ($players as $player)
    {
        echo "Name: ".$player->name." rating:".$player->rating."
    ";
    }
    
    点赞 打赏 评论

相关推荐 更多相似问题