这应该占用ing_name
重复的任何行,组合eff_name
字段并删除副本,但它也有将数组从数字更改为关联的副作用。我的ajax期待数字数组。
for($i=count($recipe)-1; $i>0; $i--) {
if($recipe[$i]['ing_name'] == $recipe[$i-1]['ing_name']) { //check for duplicate. **array must be sorted by ing_name**
$recipe[$i-1]['eff_name'] .= ', '.$recipe[$i]['eff_name']; //Combine eff_name of duplicates
$recipe[$i-1]['link'] = true;
unset($recipe[$i]); //remove duplicate index
}
}
编辑:所以我认为它必须与取消设置索引有关,所以我这样做了它似乎工作正常:
$newRecipe = array();
foreach($recipe as $r) {
$newRecipe[] = $r;
}
新问题,还有更好的方法吗?
答案 0 :(得分:1)
unset
适用于命名键。您可以改为使用array_splice
,或者在使用array_values
循环后获得一个全新的数组(但这很难看!)。
答案 1 :(得分:1)
array_values()将返回数字索引数组