Php 带条件索引的数组迭代

Php array iteration with conditional indexing

我正在研究 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'.

当前代码根据每次迭代附加 index,例如 'Ben_1' 'john_3'

我希望我的最终数组像 :

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

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

那么有什么办法可以做到这一点吗?

你的意思是这样的:

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

}

你可以这样做:

$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++;
        }
}
$i = 0;

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