php – 有一种优雅的方法可以将结构简化为一个简单的数组吗?
发布时间:2020-12-13 13:20:07 所属栏目:PHP教程 来源:网络整理
导读:这是 a typical array structure: $s = array ('etc'='etc','fields' = array ( 0 = array ( 'name'='year','description'='Year of ...','type'='integer',),1 = array ( 'name'='label','description'='Offical short name',type'='string',2 = array ( '
这是
a typical array structure:
$s = array ('etc'=>'etc','fields' => array ( 0 => array ( 'name'=>'year','description'=>'Year of ...','type'=>'integer',),1 => array ( 'name'=>'label','description'=>'Offical short name',type'=>'string',2 => array ( 'name' => 'xx','description' => 'Xx ...','type' => 'string',) )); 这是一种非优雅的方式(或“不那么优雅的方式”)将大数组减少为只包含一列的简单数组: $fields = array(); foreach ($strut['resources'][0]['schema']['fields'] as $r) $fields[] = $r['name']; 这有效,但是只用一条指令就可以做同样的事吗?也许使用像array_reduce(),但我不知道如何. 这是其他典型的“优雅PHP问题”: $fieldsByName = array(); foreach ($strut['resources'][0]['schema']['fields'] as $r) $fields[$r['name']] = array( 'description' =>$r['description'],'type' =>$r['type'] ); 有替代品吗?这里的想法是使用关键字(示例中的名称)作为数组键,其他元素作为常用字段,因此,通用的非优雅算法是 $fieldsByName = array(); foreach ($strut['resources'][0]['schema']['fields'] as $r){ $key = $r['name']; unset($r['name']); $fields[$key] = $r; }
您可以使用
array_column 将具有键名称的所有值提取到另一个数组中
$names = array_column($strut['resources'][0]['schema']['fields'],'name'); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |