Php 函数正在将数组从数字更改为关联
这应该是采取任何重复Php 函数正在将数组从数字更改为关联,php,arrays,json,Php,Arrays,Json,这应该是采取任何重复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** $reci
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;
}
新问题,有更好的方法吗?
unset
使用命名键。您可以改为使用,或者在使用循环后获得一个全新的数组(但那会很难看!)。将返回一个数字索引数组无需担心,数组拼接将我引导到我最终使用的数组切片,因为我一次只需要删除一个索引。谢谢因为您正在创建一个新数组,在破坏了原始数组的形状之后。如果在循环中使用array\u-splice
而不是unset
,则不需要像原始代码那样创建新数组。