php – 有一种优雅的方法可以将结构简化为一个简单的数组吗?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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 (
     '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');

脚本宝典总结

以上是脚本宝典为你收集整理的php – 有一种优雅的方法可以将结构简化为一个简单的数组吗?全部内容,希望文章能够帮你解决php – 有一种优雅的方法可以将结构简化为一个简单的数组吗?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。