繁体   English   中英

PHP根据数组值创建新数组

Php create new array from array value if the array have same value

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

示例我有这样的数组:

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 1
    [4] => 5
    [5] => 5
    [6] => 5
    [7] => 6
    [8] => 7
    [9] => 8
    [10] => 9
)

我的问题是,如何创建这样的新数组。 因此,创建具有相同值的新数组:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 1
            [3] => 1
        )

    [1] => Array
        (
            [0] => 5
            [1] => 5
            [2] => 5
        )

    [2] => 6
    [3] => 7
    [4] => 8
    [5] => 9
)

请帮我,为我的英语不好而感到抱歉。

2 个回复
$result = [];
foreach (array_count_values($array) as $value => $occurrences) {
    $result[] = $occurrences == 1 ? $value : array_fill(0, $occurrences, $value);
}

参见http://php.net/array_count_values 实际上,这可能正是您要寻找的。 我看不出重复多次相同值的意义。

使用array_count_values试试这个

<?php

$tr = Array(1,1,1,1,5,5,5,6,7,8,9,10);

$array= array_count_values($tr);
var_dump($array);


$arry1 = array();
foreach($array as $key =>$val){
 if ($val>1){
     $tmp =array();
     for($i= 0;$i<$val;$i++){
       $tmp[] =$key;
     }
     $arry1[] =$tmp;
 }
 else{
     $arry1[] =$key;
 } 
}

var_dump( $arry1);
?>
1 PHP,根据键缺失的值创建新数组

我有一个多维数组: 现在我想合并数组的差异,例如如果数组(名称=&gt;一个)有两个日期(2016-10-10和2016-10-10),但数组(名称=&gt;两个)只有一个日期(2016 -10-10),我想添加2016-10-11数组(名称=&gt;两个)。 ...

2 PHP 从值计数创建一个新数组

我的原始数组是: 我正在尝试创建一个函数,该函数返回一个新数组,该数组可以在图表中使用,我创建的函数代码如下: 我从上述函数返回的数据不正确: 你能告诉我我在这里做错了什么...... ...

3 PHP如何从数组创建新数组

我有一个带有Google字体的数组(+600): 我需要这个新结构: 我有以下代码,但无法正常工作: 此数组应在此处使用(它是使用选择框的类型): 为什么不起作用? ...

5 PHP在数组中找到相同的值并创建新的数组

我有一个像这样的数组: 我的目标是将此数组放入一个新数组: 最后,我想要这样的JSON: 我想基于'hostings_id'创建JSON具有相同'hostings_id'值的所有内容都应放在单独的JSON中。 我已经尝试了很多foreach和array_count_ ...

6 PHP 根据另一个数组的值创建新数组

我有一个简单的 PHP 多维数组,我想遍历它,特别是名称为License的数组,并将以相同的第一个单词开头的所有values项添加到它自己的数组中(将键设置为该单词)。 这个想法是我最终会得到类似的东西: 这是我正在使用的数组的示例$product['options'] 这就是我目前所在的 ...

7 从现有数组php创建新数组

大家好,需要foreach循环的帮助,我需要创建一个数组, a使用以下各项来调用a : [10, 3, 45, 98, 4, 7, 56, 23, 3, 1] 。 然后使用for-each循环将每一项与10相加,然后将它们放入一个名为b的新数组中。 检查下面的代码可在同一$ a数组上工作 ...

8 php从旧数组创建新数组

在某些情况下,我需要从商品订单中为我的货件拆分商品。 规则是每 1 批货物的最大重量为 5。这是我的物品订单: 拆分后,我希望结果如下: 这样做的可行方法是什么? 谢谢你。 ...

10 如何使用循环PHP根据特定值动态创建新数组

例如,我有一个这样的数组: 我想创建一个新数组,其元素数基于一个值,例如如果值为 2,则数组变为: 此外,如果数组本身由 3 组成,并且值为 3,则: 如何创建动态函数来创建这个新数组? 我正在考虑添加一个 if-else,但我不知道如何在循环过程中使用它。 谢谢你的帮助 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM