具有条件索引的Php数组迭代

时间:2015-01-05 16:46:44

标签: php arrays loops foreach

我正在研究PHP数组迭代。我有数组,例如如下: 1)禁止2)年龄

$banned = array(
       "school_name"=> "abc",
       "school_rating"=> "xyz",  
);

$age = array(
       "Peter"=> "35",   // 0
       "Ben"=> "16",     // 1
       "Joe"=> "43"      // 2
       "john"=> "12",    // 3
); 

我正在使用foreach迭代这个数组:

foreach($age as $index => $value) {
    if ($value < '18') {
         $banned['name_' . $index] = $value; // Push values below 18 to 'banned' array with index value
    }

}

我想找到18岁以下的名字。将主题推送到'banned'数组。

此代码正常。但是,在将名称推送到'banned'数组时,我想在其名称中添加新索引,例如'Ben_0' 'john_1'

根据foreach迭代添加index的当前代码,例如'Ben_1' 'john_3'

我想要我的最终数组:

$banned = array(
       "school_name"=> "abc",
       "school_rating"=> "xyz",       
       "Ben_0"=> "16",     
       "john_1"=> "12",   
); 

我想要这个新的索引,以便稍后执行一些API调用。

有没有办法实现这个目标?

3 个答案:

答案 0 :(得分:3)

你的意思是:

$count = 0;
foreach($age as $index => $value) {
    if ($value < '18') {
         $banned[$index . '_' . $count++] = $value; // Push values below 18 to 'banned' array with index value
    }

}

答案 1 :(得分:0)

你可以这样做:

$i = 0;    
foreach($age as $index => $value) 
{
        if ($value < '18') {
             $banned['name_' . $i] = $value; // Push values below 18 to 'banned' array with index value
             $i++;
        }
}

答案 2 :(得分:0)

$i = 0;

foreach ($age as $name => $age)
{
    $banned[$name . '_' . $i++] = $age;
}