鉴于此数据结构:
array(
'name one' => 'fred',
'desc one' => 'lorem ipsum'
'name two' => 'charles',
'desc two' => 'lorem ipsum'
);
在php中,我该如何匹配分配给键ONE或TWO的数字值并返回此值:
array(
'one' => array('name' => 'fred', 'desc' => 'lorem ipsum'),
'two' => array('name' => 'charles' , 'desc => 'lorem ipsum')
);
这是一个简单的逻辑问题,这就是您的处理方式(我确定有一个更快的替代方法,但这确实满足您的需求):
$new = array();
foreach($array as $key => $val) {
list($item, $number) = explode(' ', $key);
$new[$number][$item] = $val;
}
在上面的示例中,我们使用list()
和explode()
获取所需的变量。即数字“一个”或“两个”以及项目名称,本质上是“名称”和“ desc”。
如Lajos所述,如果$new[$number]
未设置,则此版本将对其进行排序并创建所需的数组:
$new = array();
foreach($array as $key => $val) {
list($item, $number) = explode(' ', $key);
// if the array isn't set
if(!isset($new[$number])) $new[$number] = array();
$new[$number][$item] = $val;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句