次の形式の文字列を連想配列に解析するにはどうすればよいですか?
[ ["key1", "value1"], ["key2", "value2"], ["key3", "value3] ]
に:
Array
(
["key1"] => "value1"
["key2"] => "value2"
["key3"] => "value3"
)
ありがとう!
編集:データは文字列形式です。
$stringdata ='[ ["key1", "value1"], ["key2", "value2"], ["key3", "value3"] ]';
ループを使用して配列全体をループし、最初の要素をキーとして、2番目の要素を値として使用して値を新しい配列に割り当てます。通常このように:
$new_array = array();
foreach($array as $arr) {
$new_array[$arr[0]] = $arr[1];
}
しかし、文字列を配列に解析するには、次の正規表現アプローチを使用してからループを実行します。
$str = '[ ["key1", "value1"], ["key2", "value2"], ["key3", "value3"] ]';
preg_match_all('/(\[("(.*?)"), ("(.*?)")\])/i', $str, $matches);
//Now we have in $matches[3] and $matches[5] the keys and the values
//and we would now turn this into an array using a loop
$new_array = array();
for($k = 0; $k < count($matches[3]); $k++) {
$new_array[$matches[3][$k]] = $matches[5][$k];
}
このライブデモを見るhttps://3v4l.org/u3jpl
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加