我有這個$array DD.MM.YYYY|XX,xxx
[0]=> string(17) "04.01.2021|26,140"
[1]=> string(17) "05.01.2021|26,225"
[2]=> string(17) "06.01.2021|26,145"
我需要從中再創建 2 個陣列,例如$array_date和$array_value.
我foreach在回圈使用explode()函式中嘗試了類似的東西,但我不知道,我也檢查了一些以前的帖子來解決這個問題,但無濟于事。
uj5u.com熱心網友回復:
試試這個方法:
$data = [
'04.01.2021|26,140',
'05.01.2021|26,225',
'06.01.2021|26,145'
];
function extract_array($array) {
$result = [];
foreach($array as $row) {
$values = explode("|", $row);
$result['array_date'][] = $values[0];
$result['array_value'][] = $values[1];
}
return $result;
}
print_r(extract_array($data));
// Array
// (
// [array_date] => Array
// (
// [0] => 04.01.2021
// [1] => 05.01.2021
// [2] => 06.01.2021
// )
//
// [array_value] => Array
// (
// [0] => 26,140
// [1] => 26,225
// [2] => 26,145
// )
//
// )
uj5u.com熱心網友回復:
如您所述,您可以在 foreach 中使用 explode ,然后填充 2 個陣列。
假設所有字串的格式都相同:
$array = [
"04.01.2021|26,140",
"05.01.2021|26,225",
"06.01.2021|26,145"
];
$array_date = [];
$array_value = [];
foreach($array as $value) {
$parts = explode('|', $value);
$array_date[] = $parts[0];
$array_value[] = $parts[1];
}
uj5u.com熱心網友回復:
這應該與 list() 一起使用:
$array = [
"04.01.2021|26,140",
"05.01.2021|26,225",
"06.01.2021|26,145"
];
$date_array = [];
$value_array = [];
foreach ( $array as $i )
{
list($date, $value) = explode("|",$i);
$date_array[] = $date;
$value_array[] = $value;
}
uj5u.com熱心網友回復:
您還可以使用 array_walk_recursive()
在訪問它們時,我更喜歡將日期和值作為同一陣列的一部分。而不是$array_date[key]and$array_value[key]你會把它們放在$array[key]['date']and中$array[key]['value']。但這取決于你想對結果做什么。
$data = array(
"04.01.2021|26,140",
"05.01.2021|26,225",
"06.01.2021|26,145"
);
array_walk_recursive($data, function($value) use (&$result){
$parts = explode('|', $value);
$result[] = array(
'date' => $parts[0],
'value' => $parts[1]
);
});
print_r($result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/456436.html
