将有许多方法来剥皮这只猫。
我一直在努力提供一个灵活的解决方案,如果/当你的字符串包含多于或少于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