PHP 数组系列

/**

- @todo 多维数组转变为一维数组
- @param $dataArr 需要转换的数组
- @param $field 简化的字段
- @param $isFirst 多层数组,是否只取第一层
  */
  private function toOneArrayA($dataArr, $field = 'sName', $isFirst = false)
  {
     foreach ($dataArr as $key => $val) {
        $_ret[$key] = $val[$field];
        if (!empty($val['attrs']) && !$isFirst) {
             $arr = $this->toOneArray($val['attrs']);
             $_ret = $_ret + $arr;
         }
      }
  return $_ret;
  }
php
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1
lmaster

这个样子是不是更好一些

    private function toOneArray(array $dataArr, $field = 'sName', $isFirst = false): array
    {
        $_ret = []; // 先声明变量,在循环,效率会提高
        foreach ($dataArr as $key => $val) {
            $_ret[$key] = $val[$field];
            if (!empty($val['attrs']) && !$isFirst) {
                $arr = $this->toOneArray($val['attrs'], $field, $isFirst); // 参数为什么不带上?
                $_ret = $_ret + $arr; // array_merge 和 + 的区别
            }
        }
        return $_ret;
    }
5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!