使用foreach循环的php过滤器数组

时间:2018-01-25 19:58:41

标签: php arrays loops

如何过滤打击数组并检索我想要使用的任何键值。我使用的示例代码仅返回99

<?php
  $theArray = array(
            'DP' => 1, 'TA' => 2, 'TA' => 3, 'IC' => 4, 'TA' => 5,
            'JP' => 6, 'TA' => 7, 'DP' => 8, 'IR' => 9, 'TA' => 10,
            'TA' => 11, 'IR' => 12, 'TA' => 13, 'DP' => 14, 'TA' => 15,
            'TA' => 16, 'IR' => 17, 'TA' => 18, 'IC' => 19, 'TA' => 20,
            'TA' => 21, 'IC' => 22, 'TA' => 23, 'TA' => 24, 'TA' => 25,
            'JP' => 26, 'TA' => 27, 'TA' => 28, 'TA' => 29, 'TA' => 30,
            'TA' => 31, 'TA' => 32, 'TA' => 33, 'TA' => 34, 'DP' => 35,
            'TA' => 36, 'TA' => 37, 'DP' => 38, 'JP' => 39, 'TA' => 40,
            'TA' => 41, 'IC' => 42, 'TA' => 43, 'TA' => 44, 'IR' => 45,
            'IR' => 46, 'TA' => 47, 'TA' => 48, 'TA' => 49, 'TA' => 50,
            'TA' => 51, 'TA' => 52, 'JP' => 53, 'TA' => 54, 'TA' => 55,
            'TA' => 56, 'TA' => 57, 'TA' => 58, 'DP' => 59, 'TA' => 60,
            'IC' => 61, 'TA' => 62, 'TA' => 63, 'TA' => 64, 'TA' => 65,
            'TA' => 66, 'IR' => 67, 'IR' => 68, 'TA' => 69, 'DP' => 70,
            'DP' => 71, 'TA' => 72, 'TA' => 73, 'TA' => 74, 'TA' => 75,
            'TA' => 76, 'TA' => 77, 'TA' => 78, 'TA' => 79, 'IC' => 80,
            'TA' => 81, 'IC' => 82, 'TA' => 83, 'TA' => 84, 'TA' => 85,
            'TA' => 86, 'TA' => 87, 'IC' => 88, 'IR' => 89, 'TA' => 90,
            'TA' => 91, 'TA' => 92, 'JP' => 93, 'TA' => 94, 'TA' => 95,
            'TA' => 96, 'TA' => 97, 'TA' => 98, 'TA' => 99 
        );
        foreach($theArray as $key => $val){
            if($val == 'TA'){
                echo $key.',';
            }
        }

3 个答案:

答案 0 :(得分:0)

如果您想从数组中获取特定值的键,请使用array_keys(),例如

print_r(array_keys($theArray, 'TA'));
  

如果指定了可选的search_value,那么只有那个键   返回值。否则,数组中的所有键都是   返回。

答案 1 :(得分:0)

我想我现在有了解决方案,我很懒,重新排列数组,所以我试过,如果我可以使用任何方法过滤它。

<?php
    $theArray = array(
                'IC' => array(4,19,22,42,61,80,82,88),
                'IR' => array(9,12,17,45,46,67,68,89),
                'JP' => array(6,26,39,53,93),
                'DP' => array(1,8,14,35,38,59,70,71),
                'TA' => array(0,2,3,5,7,10,11,13,15,16,18,20,21,23,24,25,27,28,29,30,31,32,33,34,36,37,40,41,43,44,47,48,49,50,51,52,54,55,56,57,58,60,62,63,64,64,66,69,72,73,74,75,76,77,78,79,81,83,84,85,86,87,90,91,92,94,95,96,97,98,99)
    );
    foreach($theArray as $key => $val){
    if($key == 'TA'){
        foreach($val as $thisk){
            echo $thisk.',';
        }
      }
   }
?>

谢谢大家

答案 2 :(得分:-1)

您可以使用array_filter

$newArray = array_filter($theArray, function($value){
    return $value == "TA";
});