我有一个mysql查询,它会吐出以下内容:
Array
(
[0] => stdClass Object
(
[bid] => 18
[name] => Cafe Domingo
[imageurl] => sp_domingo.gif
[clickurl] => #
)
[1] => stdClass Object
(
[bid] => 19
[name] => Industrial Sweeping Services
[imageurl] => sp_iss.gif
[clickurl] => http://www.industrialsweeping.com.au/
)
[2] => stdClass Object
(
[bid] => 22
[name] => Melbourne Food Distributors
[imageurl] => sp_mfd.gif
[clickurl] => http://www.campbells.com.au/
)
[3] => stdClass Object
(
[bid] => 26
[name] => Toyota Chadstone
[imageurl] => sp_toyota.jpg
[clickurl] => http://www.chadstonetoyota.com.au/
)
[4] => stdClass Object
(
[bid] => 15
[name] => Bay Corporate Catering
[imageurl] => sp_baycorp.gif
[clickurl] => http://www.baycorporatecatering.com.au/
)
[5] => stdClass Object
(
[bid] => 24
[name] => Steve Wilby Transport
[imageurl] => sp_swilky.gif
[clickurl] => http://www.stevewilby.com.au/
)
[6] => stdClass Object
(
[bid] => 17
[name] => Cody Gems and Jewellery
[imageurl] => sp_cody.gif
[clickurl] => #
)
[7] => stdClass Object
(
[bid] => 21
[name] => Matthew Davis Australia Pty Ltd
[imageurl] => sp_matthewdavis.gif
[clickurl] => http://www.matthewdavis.com.au/
)
[8] => stdClass Object
(
[bid] => 25
[name] => Tom the Lumberjack
[imageurl] => sp_tom.gif
[clickurl] => http://www.redwoodgardens.com.au/
)
[9] => stdClass Object
(
[bid] => 16
[name] => Bendigo Bank
[imageurl] => sp_bb.gif
[clickurl] => http://www.bendigobank.com.au/
)
[10] => stdClass Object
(
[bid] => 14
[name] => 360South Pty Ltd
[imageurl] => sp_360south.gif
[clickurl] => http://www.360south.com.au/
)
[11] => stdClass Object
(
[bid] => 23
[name] => Redwood Gardens Chinese Restaurant
[imageurl] => sp_redwood.gif
[clickurl] => http://www.redwoodgardens.com.au/
)
)
然后可以将该数组拆分为4个数组吗?每个数组中的项目数量相等(尽可能最好),但随着更多信息被放入dbase,它们可以是动态的。所以如果数量不均匀,最后一个数组的数量会减少?
如果这有意义吗?
答案 0 :(得分:4)
当然可以!以下代码将执行此操作,将结果拆分为您指定的切片数。
function split_array($array, $slices) {
$perSlice = floor(count($array) / $slices);
$sliceExtra = count($array) % $slices;
$slicesArray = array();
$offset = 0;
for($i = 0; $i < $slices; $i++) {
$extra = (($sliceExtra--) > 0) ? 1 : 0;
$slicesArray[] = array_slice($array, $offset, $perSlice + $extra);
$offset += $perSlice + $extra;
}
return $slicesArray;
}
$slices = split_array($mysqlResult,4);
编辑:编辑以制作更均匀的切片。
答案 1 :(得分:3)
我认为这有效
$splitArray = array_chunk( $sourceArray, ceil( count( $sourceArray ) / 4 ) );