在PHP中使用自定义ID格式化数组树

在PHP中使用自定义ID格式化数组树,php,arrays,laravel,Php,Arrays,Laravel,我有一个数组,我需要格式化成一个数组。我目前使用的函数运行得很好,因为我不知道如何为ID设置自定义键。数组用于填充选择框,因此我需要该ID。我花了几个小时来处理它,在格式化数组时我就不知所措了 我需要输出使用自定义键(例如$row->id),该键将输出如下内容: [40 =>'Florida', 50 =>'CA', 33 => 'NY'] 现在它的输出像 [0 =>'Florida', 1 =>'CA', 2 => 'NY'] 这是我目前的职能: pro

我有一个数组,我需要格式化成一个数组。我目前使用的函数运行得很好,因为我不知道如何为ID设置自定义键。数组用于填充选择框,因此我需要该ID。我花了几个小时来处理它,在格式化数组时我就不知所措了

我需要输出使用自定义键(例如$row->id),该键将输出如下内容:

[40 =>'Florida', 50 =>'CA', 33 => 'NY']
现在它的输出像

[0 =>'Florida', 1 =>'CA', 2 => 'NY']
这是我目前的职能:

protected function createRegionList($parent_id = '0', $spacing = '')
{

    $arr = [];
    foreach ($this->getByParentId($parent_id) as $row) {
        $arr[] = $spacing . ' ' . $row->title;
        $arr = array_merge($arr, $this->createRegionList($row->id, ' ' . $spacing . '—'));
    }
    return $arr;

}

任何帮助或建议都将不胜感激。我已经找到了一些示例,但它们是更多维的数组,我需要作为单个数组的输出

可以通过在括号中指定键来设置数组项键。看

试试这个

$arr[$row->id] = $spacing . ' ' . $row->title;
不保存密钥。使用

或者把这些结合在一起

$arr = [];
foreach ($this->getByParentId($parent_id) as $row) {
    $arr[] = $spacing . ' ' . $row->title;
    $childs = $this->createRegionList($row->id, ' ' . $spacing . '—');
    $arr = $childs + $arr;
}
return $arr;

谢谢,是的,我试着在那里设置ID,但没有什么区别,它只是在自身上循环,将其设置回[0=>'Florida',1=>'CA',2=>'NY']