基于数组值php重新格式化数组

时间:2014-03-02 22:16:50

标签: php arrays format

所以我有一个与此类似的数组

$arr[0]['name'] = 'Name';
$arr[0]['id'] = 2382;

$arr[1]['name'] = 'Name';
$arr[1]['id'] = 2838;

$arr[2]['name'] = 'Name';
$arr[2]['id'] = 2832;

如何使用数组的id值重新格式化数组替换初始索引(0,1,2)?这可能吗?最后一个数组就像这样

$arr[1922]['name'] = 'Name';
$arr[2929]['name'] = 'Name';
$arr[3499]['name'] = 'Name';

由于

1 个答案:

答案 0 :(得分:2)

这很简单。

这只是一个循环遍历原始数组并构建新数组的情况。

完成后,您可以根据需要更换旧阵列。

foreach ( $arr as $thisArray ) {
  $aNewArray[ $thisArray['id']]['name'] = $thisArray['name'];
}
$arr = $aNewArray;

如果数组中有任意数量的元素,并且您只想清除ID并保留其余部分,则可以在进行时取消设置ID并使用生成的数组:

foreach ( $arr as $thisArray ) {
  $id = $thisArray['id'];
  unset( $thisArray['id'] );
  $aNewArray[ $id ] = $thisArray;
}
$arr = $aNewArray;