將有許多方法來剝皮這隻貓。
我一直在努力提供一個靈活的解決方案,如果/當你的字符串包含多於或少於3行的值
$string="Service, Service, Service, 8 mars, 2017, 22 mars, 2017, 5 april, 2017, 08:00, 08:00, 08:00";
$string=preg_replace('/(\d{1,2}\s\w+),(\s\d{4})/','$1$2',$string);
/* "Service, Service, Service, 8 mars 2017, 22 mars 2017, 5 april 2017, 08:00, 08:00, 08:00" */
$array=explode(', ',$string); // divide at comma&space's
/* array (
0 => 'Service',
1 => 'Service',
2 => 'Service',
3 => '8 mars 2017',
4 => '22 mars 2017',
5 => '5 april 2017',
6 => '08:00',
7 => '08:00',
8 => '08:00'
) */
$rows=3; // change this if your original string holds > or < 3 rows
$array=array_chunk($array,$rows); // group elements into specified number of rows
/* array (
0 => array (
0 => 'Service',
1 => 'Service',
2 => 'Service'
),
1 => array (
0 => '8 mars 2017',
1 => '22 mars 2017',
2 => '5 april 2017'
),
2 => array (
0 => '08:00',
1 => '08:00',
2 => '08:00'
)
) */
// loop indexes of each element in the first sub-array (group/chunk)
foreach(array_keys($array[0]) as $key){
// access each value in all sub-arrays with same key/index (column)
/* column 0 holds:
array (
0 => 'Service',
1 => '8 mars 2017',
2 => '08:00'
) */
// then join them together using a space as glue
// and push into the final array
$result[]=implode(' ',array_column($array,$key));
}
/* result holds:
array (
0 => 'Service 8 mars 2017 08:00',
1 => 'Service 22 mars 2017 08:00',
2 => 'Service 5 april 2017 08:00'
)
任何人誰更喜歡緊湊的您(或其他人)可以簡單的修改(和幾乎不可讀)函數調用,在這裏你去:
function davids_WP_workaround($string,$rows){
$array=array_chunk(explode(', ',preg_replace('/(\d{1,2}\s\w+),(\s\d{4})/','$1$2',$string)),$rows); // group 9 elements into sets of 3 elements
foreach(array_keys($array[0]) as $key){
$result[]=implode(' ',array_column($array,$key));
}
return $result;
}
$string="Service, Service, Service, 8 mars, 2017, 22 mars, 2017, 5 april, 2017, 08:00, 08:00, 08:00";
echo "<pre>";
var_export(davids_WP_workaround($string,3));
echo "</pre>";
這是怎麼形成的陣列它可能在更容易從那裏開始 – Mihai
看看:http://stackoverflow.com/q/797251/3933332 – Rizier123
...只要你在你的問題上收到如此多的降價這通常意味着你的問題非常糟糕。如果你沒有努力爲自己解決問題,人們會降低你的問題。在發佈問題之前,總是研究在線手冊和計算器答案。如果你想刪除這個問題,那將是非常好的。 – mickmackusa