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

PHP中关联数组的逗号分隔字符串,php,arrays,Php,Arrays,我有一根这样的绳子- $string = 'Apple, Orange, Lemone'; 我要将此字符串设置为:: $array = array('apple'=>'Apple', 'orang'=>'Orange', 'lemone'=>'Lemone'); 如何做到这一点 我使用了像这样的爆炸函数 $string = explode(',', $string ); Array ( [9] => 9 [admin@example.com] =&g

我有一根这样的绳子-

$string = 'Apple, Orange, Lemone';
我要将此字符串设置为::

$array = array('apple'=>'Apple', 'orang'=>'Orange', 'lemone'=>'Lemone');
如何做到这一点

我使用了像这样的爆炸函数

$string = explode(',', $string );
Array
(
    [9] => 9
    [admin@example.com] => admin@example.com
    [8] => 8
)
这给了我这个- 数组([0]=>apple[1]=>orang)

有人说这个问题是这个问题的翻版:

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

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

$string = explode(',', $string );
Array
(
    [9] => 9
    [admin@example.com] => admin@example.com
    [8] => 8
)
你可以尝试:

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

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

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

echo '<pre>';
print_r($res);
echo '</pre>';
$string='Apple,Orange,Lemone';
$string=str_replace(“”,,$string);
$explode=explode(“,”,$string);
$res=数组与组合($explode,$explode);
回声';
印刷品(港币);;
回声';
或者,如果需要为生成的数组设置小写键,请使用以下命令:

<?php
$string = 'Apple, Orange, Lemone';
$array = explode(', ', $string);
print_r($array);
echo';
打印(数组更改键大小写($res,大小写较低));
回声';
现在

Array
(
    [Apple] => Apple
    [Orange] => Orange
    [Lemone] => Lemone
)
$valuesInArrayWithSpace = explode("," $string);

$finalArray = [];

foreach ($ValuesInArrayWitchSpace as $singleItem) {

    $finalArray[trim(strtolower($singleItem))] = trim($singleItem);
} 
<?php
     $string = 'Apple, Orange, Lemone';
     $array = explode(', ', $string);

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

?>
您的愿望输出:

Array
(
    [Apple] => Apple
    [Orange] => Orange
    [Lemone] => Lemone
)
$valuesInArrayWithSpace = explode("," $string);

$finalArray = [];

foreach ($ValuesInArrayWitchSpace as $singleItem) {

    $finalArray[trim(strtolower($singleItem))] = trim($singleItem);
} 
<?php
     $string = 'Apple, Orange, Lemone';
     $array = explode(', ', $string);

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

?>

使用array\u flip将值更改为键,并使用array\u combine

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

<?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);

?>

这样,您将拥有您所需要的:

$string = 'Apple, Orange, Lemone';

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

$assocArr = array_change_key_case(
  array_combine(array_values($arr), $arr)
);

您可以使用数组函数,如array\u combine和array\u值


爆炸是个好主意start@Dagon我已经使用了explode,只需检查我编辑的问题使用array\u flip将值更改为key@SalihK如下所述,只需在
explode
之后使用
array\u combine
,您无需调用explode twi。此解决方案提供与值大小写相同的数组键。该问题指定小写数组键。这将为您提供数组([Apple]=>0[Orange]=>1[Lemone]=>2)此代码段不仅缺少分号,而且无法提供所需的输出。如果这是所需的输出,则只需调用
explode()
,即可完成。这个答案可以安全地删除。这种方法丢弃字符串大小写数据,而不是将其保留在值中。这很好。我认为键确实应该通过
trim()
来删除任何空白。似乎这是比x更好的实现结果的方法。
array\u values()
在这里是一个无用的调用。为什么
trim()
每次迭代两次相同的值?为什么不直接用逗号分隔呢?