gpt4 book ai didi

php动态数组名

转载 作者:可可西里 更新时间:2023-11-01 00:42:00 25 4
gpt4 key购买 nike

我正在尝试通过我尝试遵循的动态名称来分配数组的值

$arr = array();

$path = 'arr'."['item']['abc']";

${$path} = array(
'name'=>'somename',
'other'=>'...'
);

不是${$path} => $arr['item']['abc'];

我还尝试了 $$path 应该评估为 $arr['item']['abc']; 但它们都不起作用

http://codepad.viper-7.com/Dc8Jei

已更新 -> http://codepad.viper-7.com/k4sIgJ


我想做的是将文件和文件夹存储在数组中我有这样的目录结构

(这是亚马逊 aws s3 对象键)

   aaa/aaab/ 
aaa/a.png
aaa/abc/one.png

abb/a/
abb/some/
abb/some/ac.png

现在我要做的是将这些项目存储在数组中

我把这些键分解成了这个字符串

 ['aaa']['abc']

现在我想要得到的是

[aaa]{
[aaab]{}
[abc]{
[0]{one.png}
}
[aaab]{}
}

只是为了说明

最佳答案

引用您更新的 codpad,有多种可能的方法可以在不使用变量的情况下编写它。

这是一种可能的选择:

<?php

$arr = array();

$loc_arr = array('item' => array('abc', 'www', 'ccc'));

foreach($loc_arr as $itemKey=>$items){
foreach($items as $subitem) {
$arr[$itemKey][$subitem] = array(
'name'=>'somename',
'other'=>'...'
);
}
}

正如我在评论中提到的,很难知道这个特定的解决方案对您的特定用例有多合适,但我认为它应该清楚地表明在这个过程中真的不需要变量一种背景。

可变变量应该被认为很像 eval():尽可能避免使用它们。如果您发现自己想要使用它们,那么您可能从错误的角度来处理问题。它们存在是因为它们在某些偶然情况下可能有用,但这些情况非常罕见。作为一名专业开发人员,我从事 PHP 编写已有十多年了,我什至不记得上一次我什至差点需要使用它们是什么时候了。

关于php动态数组名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33169345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com