0

サンプルコードがあります:

$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')

4

3 に答える 3

2

入力が であることを考えると、使用する正しい関数はexplode. str_split不要なオーバーヘッドがあります。 $id_arr = explode(',', $id);.

配列は実際には次のように定義する必要があることに注意してください$id_arr = array(1 => 'value 1', 2 => 'value 2', 3 => 'value 3');

于 2012-07-23T02:08:19.863 に答える
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);
于 2012-07-23T02:09:57.427 に答える
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);
于 2012-07-23T02:49:05.263 に答える