2016-04-23 76 views
-4

我被卡在数组中的某处。我越来越像一个数组:如何将数组索引键从[]转换为“”

Array 
(
    [0] => name 
    [1] => description 
) 

我想转换到这一点:

Array 
(
    "0" => name 
    "1" => description 
) 

我已经在谷歌足够的这个发现,但没有找到任何解决办法,也不要认为它是对象数组。

有人可以帮我在这里。

感谢

+0

我仍然没有得到任何解决方案,在这个链接上。你能帮我解决吗? – addy

回答

0

基础上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" 

所以,你得到相同的输出

+0

@LightnessRacesinOrbit也许我没有正确理解这个问题。操作系统是否要求将数组键转换为字符串? –

+0

我想将[0]转换为“0”,因为我有2个数组,我还想通过array_diff区别它。和array_diff不接受数组索引[0] – addy

+0

@addy我建议你应该更新白色这个重要信息的问题,并解释为什么你认为它不是重复的。您还应该**包含不起作用的代码**,因为人们在提问之前会先看看您尝试过的内容(您可以将其与我的答案中的代码结合使用) - 这会重新打开您的问题,并允许我们帮你。 –

0

你误读输出。钥匙不是[0][1];它们是整数01,风格化为调试输出。

如果你喜欢,你可以使用字符串键(即输出中的["0"]["1"]),但是因为无论如何PHP会根据需要强制执行,所以没有任何意义。

相关问题