逗号将字符串分隔为PHP中的关联数组

时间:2016-12-29 11:07:09

标签: php arrays

我有一个像这样的字符串 -

$string = 'Apple, Orange, Lemone';

我想将此字符串设为::

$array = array('apple'=>'Apple', 'orang'=>'Orange', 'lemone'=>'Lemone');

如何实现这个

我使用了像这样的爆炸功能

$string = explode(',', $string );

给了我这个 - 数组([0] => apple [1] => orang)

有人说这个问题与这个问题的重复:How can I split a comma delimited string into an array in PHP?

这个问题没有解决我的问题,我已经达到了这个问题的答案,请阅读我的问题。我需要改变结果arry的关键价值。见

Array
(
    [0] => 9
    [1] => admin@example.com
    [2] => 8
)

喜欢这个

Array
(
    [9] => 9
    [admin@example.com] => admin@example.com
    [8] => 8
)

8 个答案:

答案 0 :(得分:3)

您可以尝试:

$string = 'Apple, Orange, Lemone';
$string = str_replace(' ', '', $string);

$explode = explode(',',$string);

$res = array_combine($explode,$explode);

echo '<pre>';
print_r($res);
echo '</pre>';

或者,如果您需要使用小写键来使用以下结果:

echo '<pre>';
print_r(array_change_key_case($res,CASE_LOWER));
echo '</pre>';

答案 1 :(得分:3)

<?php 
$string = 'Apple, Orange, Lemone'; // your string having space after each value
$string =str_replace(' ', '', $string); // removing blank spaces
$array = explode(',', $string );
$final_array = array_combine($array, $array);
$final_array = array_change_key_case($final_array, CASE_LOWER); // Converting all the keys to lower case based on your requiment 
echo '<pre>';
print_r($final_array);

?>

答案 2 :(得分:3)

您可以使用数组函数,例如array_combine和array_values

members

答案 3 :(得分:2)

<?php
$string = 'Apple, Orange, Lemone';
$array = explode(', ', $string);
print_r($array);

输出

Array
(
    [0] => Apple
    [1] => Orange
    [2] => Lemone
)

现在

$ar = array();
    foreach ($array as $value) {
        $ar[$value] = $value;
    }

print_r($ar);

您的欲望输出:

Array
(
    [Apple] => Apple
    [Orange] => Orange
    [Lemone] => Lemone
)

答案 4 :(得分:1)

$valuesInArrayWithSpace = explode("," $string);

$finalArray = [];

foreach ($ValuesInArrayWitchSpace as $singleItem) {

    $finalArray[trim(strtolower($singleItem))] = trim($singleItem);
} 

答案 5 :(得分:1)

使用array_flip将值更改为键并使用array_combine

<?php
     $string = 'Apple, Orange, Lemone';
     $array = explode(', ', $string);

     $new_array =array_flip($array);
     $final_array = array_combine($new_array,$array)
     print_r($final_array );

?>

答案 6 :(得分:1)

或者...

$csvdata = str_getcsv('Apple,Orange,Lemone');
$arr = [];

foreach($csvdata as $a) {
    $arr[strtolower(trim($a))] = $a;
}

print_r($arr);

答案 7 :(得分:1)

通过这种方式,您可以获得所需:

$lowerString = strtolower($string);
$values = explode(', ', $string);
$keys   = explode(', ', $lowerString);
$array  = array_combine($keys, $values);
print_r($array);