<?php
array('uid'=>123,'message'=>'消息','class'=>1),
array('uid'=>123,'message'=>'消息','class'=>2),
array('uid'=>123,'message'=>'消息','class'=>3),
array('uid'=>123,'message'=>'消息','class'=>4),
array('uid'=>123,'message'=>'消息','class'=>5)
array('class'=>5,'class_name'=>'水果'),
array('class'=>3,'class_name'=>'健身'),
array('class'=>4,'class_name'=>'运动'),
array('class'=>2,'class_name'=>'运动2'),
array('class'=>1,'class_name'=>'步行'),
);
/**
* 将2+维数组第2维的某列的值作为key
*
* @param array $arr input/out parameter
* @param string $cloumn
* @return void
*/
function array_change_key(&$arr, $column)
{
if (empty($arr)) {
return;
}
$newArr = array();
foreach ($arr as &$val) {
$newArr[$val[$column]] = &$val;
}
$arr = $newArr;
return $arr;
}
//将数组$ars 以class的值做为键名
$new_ars = array_change_key($ars, 'class');
foreach($arr as $k=>$v){
$arr[$k]['class_name'] = $new_ars[$v['class']]['class_name'];
}
echo "<pre>";
//数组映射计算
//适用于数组1和数组2中有重复的字段
$arr = array(array('uid'=>123,'message'=>'消息','class'=>1),
array('uid'=>123,'message'=>'消息','class'=>2),
array('uid'=>123,'message'=>'消息','class'=>3),
array('uid'=>123,'message'=>'消息','class'=>4),
array('uid'=>123,'message'=>'消息','class'=>5)
);
$ars = array(array('class'=>5,'class_name'=>'水果'),
array('class'=>3,'class_name'=>'健身'),
array('class'=>4,'class_name'=>'运动'),
array('class'=>2,'class_name'=>'运动2'),
array('class'=>1,'class_name'=>'步行'),
);
/**
* 将2+维数组第2维的某列的值作为key
*
* @param array $arr input/out parameter
* @param string $cloumn
* @return void
*/
function array_change_key(&$arr, $column)
{
if (empty($arr)) {
return;
}
$newArr = array();
foreach ($arr as &$val) {
$newArr[$val[$column]] = &$val;
}
$arr = $newArr;
return $arr;
}
//将数组$ars 以class的值做为键名
$new_ars = array_change_key($ars, 'class');
foreach($arr as $k=>$v){
$arr[$k]['class_name'] = $new_ars[$v['class']]['class_name'];
}
echo "<pre>";
print_r($arr);
//结果输出