在php中创建数组时出错

时间:2012-07-23 02:06:06

标签: php

我有一个示例代码:

$id = '1,2,3,4,5';
$name = 'Iphone 3,Iphone 3S,Iphone 4,Iphone 4S,Iphone 5';
$id_arr = array($id);
$name_arr = array($name);
$arr = array_combine($id_arr, $name_arr);
print_r($arr);

print_r($arr)结果为([1,2,3,4,5] =>'Iphone 3,Iphone 3S,Iphone 4,Iphone 4S,Iphone 5')

如何解决这个问题的结果是([1]=>'Iphone 3' [2] => 'Iphone 3S' ... [5]=>'Iphone 5')

3 个答案:

答案 0 :(得分:2)

给定输入的正确函数是explodestr_split不需要开销。 $id_arr = explode(',', $id);

请注意,数组实际上应该像这样定义:$id_arr = array(1 => 'value 1', 2 => 'value 2', 3 => 'value 3');等等......除非你被迫使用字符串作为键集。

答案 1 :(得分:1)

或尝试:

$id = '1,2,3,4,5';
$name = 'Iphone 3,Iphone 3S,Iphone 4,Iphone 4S,Iphone 5';
$id_arr = explode(',',$id);
$name_arr =explode(',',$name);
$arr = array_combine($id_arr, $name_arr);
print_r($arr);

答案 2 :(得分:0)

我不确定为什么你必须用1开始你的数组,但如果你想保持这样的顺序并将键保持为整数,可以这样做:

$name = 'Iphone 3,Iphone 3S,Iphone 4,Iphone 4S,Iphone 5';

$parts = explode(',', $name);

$arr  = array();

$i = 1;

foreach($parts as $value)
{
    $arr[$i] = $value;//we can possibly strip leading spaces and convert string case
    $i++;
}

print_r($arr);