有一个多唯数组
$array = array(
'aa' => array(
array('name'=>'test-1','id'=>5),
array('name'=>'test-2','id'=>4),
array('name'=>'c-1','id'=>5),
array('name'=>'c-2','id'=>4), array('name'=>'d-2','id'=>4),
);
'bb' => array(
array('name'=>'test-1','id'=>5),
array('name'=>'test-2','id'=>4),
);
);
假如name 前缀相同,并且前缀相同的数据跳鼠大于2,则取其中一条,更改name为前缀字符串。如果前缀相同的数据条数为1,则取原数据。如何操作?
以上结果需要得到$array = array(
'aa' => array(
array('name'=>'test','id'=>5),
array('name'=>'c','id'=>5),
array('name'=>'d-2','id'=>4),
);
'bb' => array(
array('name'=>'test','id'=>5),
);
);
$array = array(
'aa' => array(
array('name'=>'test-1','id'=>5),
array('name'=>'test-2','id'=>4),
array('name'=>'c-1','id'=>5),
array('name'=>'c-2','id'=>4), array('name'=>'d-2','id'=>4),
);
'bb' => array(
array('name'=>'test-1','id'=>5),
array('name'=>'test-2','id'=>4),
);
);
假如name 前缀相同,并且前缀相同的数据跳鼠大于2,则取其中一条,更改name为前缀字符串。如果前缀相同的数据条数为1,则取原数据。如何操作?
以上结果需要得到$array = array(
'aa' => array(
array('name'=>'test','id'=>5),
array('name'=>'c','id'=>5),
array('name'=>'d-2','id'=>4),
);
'bb' => array(
array('name'=>'test','id'=>5),
);
);
解决方案 »
- Ajax 里xmlHttpRequest对象 未定义。
- 如何解决用户通知邮件被gmail,yahoo当做垃圾邮件
- 一些大型网站是怎么把.php文件显示成.html文件的
- 请问一下有没有好的替换速度的解决方案
- 怎么做到PHP5下面MySQL和MySQLi的共存?
- 程序移植到linux 下就不能用了?谁能帮帮我?
- 下拉框????
- 我不服,我在贴,去www.china-ns.com/movie点击右边的连接看看,多看几次就出错误,怎么回事?
- php连接sql server数据库出了问题,求助!
- 如何防止第三方APP获取网站数据
- 求助SELECT怎么插入到数据库!
- 超有难度诱惑力的问题~~关于PHP处理mp3文件的问题
另外一种可能要做更多检查吧,
头疼$array = array(
'aa' => array(
array('name'=>'test-1','id'=>5),
array('name'=>'test-2','id'=>4),
array('name'=>'c-1','id'=>5),
array('name'=>'c-2','id'=>4), array('name'=>'d-2','id'=>4),
),
'bb' => array(
array('name'=>'test-1','id'=>5),
array('name'=>'test-2','id'=>4)
)
);
$arrNew = array();
foreach($array as $key=>$array1)
{
$arrKey = array();
foreach($array1 as $key1=>$value1)
{
$curKey = $value1['name'];
$curValue = $value1['id'];
$strKey = substr($curKey, 0, strpos($curKey,'-'));
if(!in_array($strKey, $arrKey))
{
$arrKey[] = $strKey;
$arrNew[$key][] = array('name'=>$strKey, 'value'=>$curValue);
}
}
}
print_r($arrNew);