2014-10-16 50 views
0

我想取出文件的是這樣定義的數組:採取領域出了多個陣列在PHP

$改編[$ J] [$ player_number] [「FIELD_NAME」] ;

我有2個字段在數組中:名稱和評級。當我打印陣列的輸出是:

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

我的問題是,我不能拿域「名」和「等級」在同一迴路,當我做「爲每個」。當我分開進行時 - 它可以正常工作,但我無法正常分類。 我知道我必須以某種方式使用「列表」,我試圖執行它,但沒有成功。

我在做什麼是:

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; 
      } 
    } 

感謝。

+2

請添加您迄今爲止編寫的代碼,因爲它是很難理解你想在這裏做什麼。 – 2014-10-16 12:05:24

+0

@ i-alarm-edalien該代碼已添加。 – 2014-10-16 12:16:38

回答

1

一旦你定義你的數組作爲

[0] => Array ([name] => name0 
[fieldname] => fieldname0) [1] => Array ([name] => name1 [fieldname] => fieldname1) 

foreach ($arr as $key){ 

echo $key['names']; 

echo $key['ratings']; 

} 
+0

這正是我的問題的答案。 – 2014-10-16 12:38:22

0

你有一個三維數組。通過$ J所示

  1. 尺寸
  2. 尺寸由$ player_number
  3. 尺寸由$ FIELD_NAME

也許你想這樣的事情表示表示: 這是由數指明一個數組玩家 $array[$player_number]

在這個數組中你可以添加stdClass對象,它包含了na我和球員的評分。代碼看起來是這樣的

//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."\n"; 
} 
+0

也許它會起作用,但這不是我正在尋找的。該數組已準備就緒,我試圖做的唯一事情就是在同一個循環中輸出2個字段。而field_name不是一個變量(沒有$),每個數組只有兩個字段 - 名稱和評級。 – 2014-10-16 12:29:30

+0

請再次告訴我你的數組看起來像是什麼,導致'$ arr [$ j] [$ player_number] ['field_name'];'意味着別人如你所說。 – mbo 2014-10-16 12:42:42