我有以下陣列:拆分陣列值,並把它作爲重點
Array
(
[0] => 102 [30:27]
[1] => 110 [29:28]
[2] => 103 [30:27]
)
我需要的輸出如下:
Array
(
[102] => 30:27
[110] => 29:28
[103] => 30:27
)
我怎樣才能做到這一點?
我有以下陣列:拆分陣列值,並把它作爲重點
Array
(
[0] => 102 [30:27]
[1] => 110 [29:28]
[2] => 103 [30:27]
)
我需要的輸出如下:
Array
(
[102] => 30:27
[110] => 29:28
[103] => 30:27
)
我怎樣才能做到這一點?
如果數據是一致的,那麼是否需要昂貴的正則表達式?這是working version。
$array = array(
'102 [30:27]',
'110 [29:28]',
'103 [30:27]'
);
$new = array();
array_walk($array, function($element) use (&$new) {
$parts = explode(" ", $element);
$new[$parts[0]] = trim($parts[1], ' []');
});
var_dump($new);
這是絕對完美的答案,謝謝。 –
嘗試
$new_arr=array();
foreach($b as $k=>$v)
{
$v=explode(' ',$v);
//var_dump($v);
$v[1]=str_replace(array('[',']'),array('',''),$v[1]);
$new_arr[$v[0]]=$v[1];
}
print_r($new_arr);
輸出:
Array ([102] => 30:27 [110] => 29:28 [103] => 30:27)
您可以通過數組循環,使用正則表達式來捕獲的數量和價值,然後建立與新的數組號碼作爲索引:
$result = array();
foreach ($array as $key => $value) {
if (preg_match('~(\d+)\s+\[(.*)]~', $value, $matches)) {
$index = isset($matches[1]) ? $matches[1] : $key;
$value = isset($matches[2]) ? $matches[2] : $key;
$result[$index] = $value;
}
}
print_r($result);
如果數組值始終由單個空格分隔,則不需要正則表達式。你可以使用explode()
到數組值與空間分隔符拆分,然後拿到指標和價值來構建新的數組:
$result = array();
foreach ($array as $key => & $value) {
$parts = explode(' ', $value);
$index = $parts[0];
$result[$index] = substr($parts[1], 1, -1);
}
print_r($result);
輸出:
Array
(
[102] => 30:27
[110] => 29:28
[103] => 30:27
)
是'102 [30:27]''[0]'鍵的值還是你在這裏寫的解釋?你可以使用'array_flip()'數組函數在php – Roopendra
中調用數組值。但是我需要的不是翻轉,我想要的是從第一個數組中取出鍵並將值作爲鍵和值示例,[ 0] => 102 [30:27]並更改爲[102] => 30:27 ...現在清楚了嗎? –