我被卡在数组中的某处。我越来越像一个数组:如何将数组索引键从[]转换为“”
Array
(
[0] => name
[1] => description
)
我想转换到这一点:
Array
(
"0" => name
"1" => description
)
我已经在谷歌足够的这个发现,但没有找到任何解决办法,也不要认为它是对象数组。
有人可以帮我在这里。
感谢
我被卡在数组中的某处。我越来越像一个数组:如何将数组索引键从[]转换为“”
Array
(
[0] => name
[1] => description
)
我想转换到这一点:
Array
(
"0" => name
"1" => description
)
我已经在谷歌足够的这个发现,但没有找到任何解决办法,也不要认为它是对象数组。
有人可以帮我在这里。
感谢
基础上duplicated answer,这是你应该怎么做
$data = array(0 =>'name', 1=> 'description');
$keys = array_keys($data);
$values = array_values($data);
$stringKeys = array_map('strval', $keys);
$data = array_combine($stringKeys, $values);
var_dump($data);
输出
array(2) { [0]=> string(4) "name" [1]=> string(11) "description" }
有一个小的语法错误那里 - array_map($keys, 'strval')
应该是array_map('strval', $keys)
顺便说一句,我不知道第二,为什么你需要这样的:在这两种情况下
$data = array("name", "description");
echo $data[0]; // output: "name"
echo $data["0"]; // Also output: "name"
所以,你得到相同的输出
@LightnessRacesinOrbit也许我没有正确理解这个问题。操作系统是否要求将数组键转换为字符串? –
我想将[0]转换为“0”,因为我有2个数组,我还想通过array_diff区别它。和array_diff不接受数组索引[0] – addy
@addy我建议你应该更新白色这个重要信息的问题,并解释为什么你认为它不是重复的。您还应该**包含不起作用的代码**,因为人们在提问之前会先看看您尝试过的内容(您可以将其与我的答案中的代码结合使用) - 这会重新打开您的问题,并允许我们帮你。 –
你误读输出。钥匙不是[0]
和[1]
;它们是整数0
和1
,风格化为调试输出。
如果你喜欢,你可以使用字符串键(即输出中的["0"]
和["1"]
),但是因为无论如何PHP会根据需要强制执行,所以没有任何意义。
我仍然没有得到任何解决方案,在这个链接上。你能帮我解决吗? – addy