从多个数组中获取特定列值

时间:2015-10-14 12:03:47

标签: php arrays foreach

如何获取多数组分支? 例如,我有以下数组:

$newarr= Array ( 
  "Tommy" => Array ( Array ( "a" => 25, "b" => 304, "c" => 9277 ), 
     Array ( "a" => 25, "b" => 4, "c" => 23 ) 
  ) ,
  "Garry" => Array ( Array ( "a" => 23, "b" => 285, "c" => 8678 ) ,
     Array ( "a" => 23, "b" => 9, "c" => 4 ) 
  )
) ;

如何使用foreach只调用[Tommy] [1]和[Garry] [1]?

我尝试了以下代码。

foreach ($person as $name => $choice?[1]?)
  { 
    foreach ($choice?[1]? as $value)
        { 
           echo "<div class='col-md-6'><br>"; 
           echo $name. "<br>"; 
           echo $value?[1]?["a"]."tries <br>";
           echo $value?[1]?["b"]."times <br>"; 
           echo $value?[1]?["c"]."count <br></div>";
        }
  }

我需要输出如下:

Tommy
25
304
9277

Garry
23
285
8678

由于

3 个答案:

答案 0 :(得分:1)

您需要使用foreach循环。

$required = array();
foreach ($arr as $elem) {
  $required[] = $elem[1];
}

<强>解释

您可以使用foreach循环遍历数组。

您可以使用键值对,也可以根据需要使用值。

在您的情况下,您需要来自二级子数组的元素。

所以,使用foreach获取密钥1

答案 1 :(得分:1)

只需使用Map<Integer, Integer> map = new TreeMap<>(); for (int i : k) { if (map.containsKey(i)) { int value = map.get(i); map.put(i, ++value); } else { map.put(i, 1); } } for (Map.Entry<Integer, Integer> entry : map.entrySet()) { int i = entry.getKey(); int n = entry.getValue(); System.out.println("The number " + i + " was found " + n + " times."); } ,如

foreach

<强>被修改

$result = [];
foreach($array as $key => $value){
   $result[$key] = $value[1];
}

答案 2 :(得分:0)

试试array_map

$result = array_map(function($item) {
  return $item[1];
}, $inputArray);