出个排序题目:
$data=[1,1,1,1,2,2,2,2,5,5,5,8,8,8,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4]
怎么把值为1,2,3,4的数据分成4个数组
如:$data1[1]=[1,1,1,1]
$data1[2]=[2,2,2,2,2,2,2]
$data1[3]=[5,5,5]
$data1[4]=[8,8,8]
数据上限不定的时候怎么写?就是说不一定是4个数组 有N个,N是未知数
并且最后结果的数组必须是从1开始的一次递增的索引的数组
我的解

Code
<?php
$data=array(1,1,1,1,2,2,2,6,6,2,2,2,2,3,3,3,5,5,5,3,3,3,3,4,4,4,4,4,4,4);
$data1=array();
$data2=array();
$pos=0;
for($i=0;$i<sizeof($data);$i++)
{
if(my_in_array($data[$i],$data2,&$pos))
{
$data1[$pos][]=$data[$i];
}
else{
$data2[]=$data[$i];
$pos=count($data2)-1;
$data1[$pos][]=$data[$i];
}
}
function my_in_array($str,$arr,&$pos)
{
for($j=0;$j<sizeof($arr);$j++)
{
if($str==$arr[$j])
{
$pos=$j;
return true;
}
}
return false;
}
print_r($data1);
print_r($data2);
?>
结果如下:
Array
(
[0] => Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 1
)
[1] => Array
(
[0] => 2
[1] => 2
[2] => 2
[3] => 2
[4] => 2
[5] => 2
[6] => 2
)
[2] => Array
(
[0] => 6
[1] => 6
)
[3] => Array
(
[0] => 3
[1] => 3
[2] => 3
[3] => 3
[4] => 3
[5] => 3
[6] => 3
)
[4] => Array
(
[0] => 5
[1] => 5
[2] => 5
)
[5] => Array
(
[0] => 4
[1] => 4
[2] => 4
[3] => 4
[4] => 4
[5] => 4
[6] => 4
)
)
Array
(
[0] => 1
[1] => 2
[2] => 6
[3] => 3
[4] => 5
[5] => 4
)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述