簡體   English   中英

如何在PHP中將逗號分隔的鍵值字符串轉換為關聯數組

[英]How to convert comma separated key value string to associative array in PHP

我嘗試搜索一種快速解決方案,以將逗號分隔的key => value字符串轉換為關聯數組,但找不到任何數組。 所以我不得不自己快速修復。

事前

我使用Jquery生成了一些表單元素的數組,並通過ajax發送。 所以我有這樣的事情:

var myarray = [];
var string1 = 'key1=>'+form['value1'].value; //and we have string2 and more
myarray.push(string1);

然后,我將“ myarray”作為數據發送到表單處理腳本。

問題

現在我要在我的PHP腳本中處理數組。 我有以下內容:

function($var,$data){
$string = $data('myarray'); //array created earlier with jquery
}

與以下內容相同:

...
$string = array(0=>'key1=>value1',1=>'key2=>value2');
...

意思是,我需要的是:

...
$string = array('key1'=>'value1','key2'=>'value2');
...

...
$string = $data('myarray');
$string1 = array();
foreach($string as $value){
    $split = explode('=>',$value);
    $string1[$split[0]]=$split[1];
}
...

現在,我可以按以下方式訪問每個鍵的值:

echo $string1['key1']; //gives value1

此解決方案還可以用於以下情況:

$string = 'key1=>value1,key2=>value2...';
$string = explode(',',$string); // same as $string = array('key1'=>'value1',...)
$string1 = array();
foreach($string as $value){
    $split = explode('=>',$value);
    $string1[$split[0]]=$split[1];
}

解決方案比我預期的要簡單得多,但是如果您知道進行這種轉換的更好方法,請隨時提出建議。

您可以在javascript中添加作為鍵值對。 然后,您無需執行任何操作,就可以直接在PHP中進行訪問。

var myarray = {};
myarray['key1'] = form['value1'].value;

在PHP中:

$arr = $data('myarray');
echo $arr['key1']

使用explode()分割字符串。

$string = 'key1=>value1,key2=>value2,key3=>value3';
$pairs = explode(',', $string);
$data = array();
foreach ($pairs as $pair) {
    list($key, $value) = explode('=>', $pair);
    $data[$key] = $value;
}
var_dump($data);

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM