我有PHP變種與多個字符串值和數字,PHP字符串和數字到一個數組
$string = 'Simple 12, Complex 16';
我爆炸這對一個數組,但我需要爆炸該字符串是象下面陣列。
Array(
[0] => Array(
[Simple] => 12,
[Complex] => 16
)
)
什麼是完美的方式來做到這一點在PHP?
我有PHP變種與多個字符串值和數字,PHP字符串和數字到一個數組
$string = 'Simple 12, Complex 16';
我爆炸這對一個數組,但我需要爆炸該字符串是象下面陣列。
Array(
[0] => Array(
[Simple] => 12,
[Complex] => 16
)
)
什麼是完美的方式來做到這一點在PHP?
下面是一個簡單的方法:
preg_match_all('/(\w+)\s*(\d+)/', $str, $matches);
$result = array_combine($matches[1], $matches[2]);
<?php
$string = 'Simple 12, Complex 16';
$values=explode(",",$string);
$result=array();
foreach($values as $value)
{
$value=trim($value);
list($type,$count)=explode(" ",$value);
$result[0][$type]=$count;
}
print_r($result);
?>
輸出
Array
(
[0] => Array
(
[Simple] => 12
[Complex] => 16
)
)
謝謝,但是如果該字符串得到的字符串和數字沒有像'Complex16'那樣的空格呢?,再次感謝。 –
那麼這又是另一個故事了,請問'複雜'總是一個詞嗎? –
<?php
preg_match_all("/[A-Za-z]+/","Simple 12, Complex 16",$keys);
preg_match_all("/[0-9]{2}/","Simple 12, Complex 16",$vals);
$a = array_combine($keys[0],$vals[0]);
print_r($a);
嘗試一下
做這樣的,如果你想出去把這樣的。
<?PHP
$string = 'Simple 12, Complex 16';
$my_arr1 = explode(',',$string);
foreach ($my_arr1 as $value) {
$value=trim($value);
$my_arr2 = explode(' ',$value);
$final_array[$my_arr2[0]]=$my_arr2[1];
}
print_r($final_array);
輸出
Array
(
[Simple] => 12
[Complex] => 16
)
謝謝,Jazakkallah。有用。 –
來自用戶的 「O手帕PankyØ」 的回覆,有一個錯誤:
這裏:
$result[0][$type]=$count;
正確的是:
$result[][$type]=$count;
preg_match_all('/(\w+)\s*(\d+)/', $string, $matc);
$output = array_combine($match[1], $match[2]);
是否總是[一個字] [編號],[一個字] [編號] –
這很簡單。你在努力解決這個問題? –
我可以爆炸這樣的陣列([0] =>'簡單12','複雜16'),但我不知道如何做下一級:分別提取數字和字符串。 –