PHP 通过键和值创建数组

2023-12-10

我在下面的 PHP 代码中有一个数组,我想将该数组转换为按数据值分组。简化数组总是很困难

     Array
(
    [0] => Array
        (
            [video_id] => 14
            [video_title] => test1
            [video_category_name] => Beginner
            [video_category] => 1
        )

    [1] => Array
        (
            [video_id] => 18
            [video_title] => test
            [video_category] => 1
            [video_category_name] => Beginner
        )

    [2] => Array
        (
            [video_id] => 17
            [video_title] => first
            [video_category] => 3
            [video_category_name] => Mobility
        )

    [3] => Array
        (
            [video_id] => 19
            [video_title] => second
            [video_category] => 3
            [video_category_name] => Mobility
        )
)

我期望这个数组:

(
    [0] => Array
    (

         [ctg_name] => Beginner
          [cat_id] => 1
          [ data]  => Array
                (
                (
                    [0] => Array
                    (

                        [video_id] => 14
                        [video_title] => test1
                        [video_category_name] => Beginner
                        [video_category] => 1
                    )
                    [1] => Array
                    (

                         [video_id] => 18
                        [video_title] => test
                        [video_category] => 1
                        [video_category_name] => Beginner
                    )
                )   

    )
     [1] => Array
    (

          [ctg_name] => Mobility
          [cat_id] => 3
          [ data]  => Array
                (
                    [0] => Array
                    (

                        [video_id] => 17
                        [video_title] => first
                        [video_category] => 3
                        [video_category_name] => Mobility
                    )
                    [1] => Array
                    (

                         [video_id] => 19
                        [video_title] => second
                        [video_category] => 3
                        [video_category_name] => Mobility
                    )
                ) 
    )
)

我尝试过这个,但没有得到我预期的结果。

foreach($video as $val){
            $result[$val['video_category']][] = $val;
        }

它返回如下:

     Array
(
    [1] => Array
        (
                    [0] => Array
                    (

                        [video_id] => 14
                        [video_title] => test1
                        [video_category_name] => Beginner
                        [video_category] => 1
                    )
                    [1] => Array
                    (

                         [video_id] => 18
                        [video_title] => test
                        [video_category] => 1
                        [video_category_name] => Beginner
                    )
        )  

    [3] => Array
    (
         [0] => Array
                (

                    [video_id] => 17
                    [video_title] => first
                    [video_category] => 3
                    [video_category_name] => Mobility
                )
                [1] => Array
                (

                     [video_id] => 19
                    [video_title] => second
                    [video_category] => 3
                    [video_category_name] => Mobility
                )


    )
)    

有谁有有效的方法来做到这一点? 请帮我 谢谢

     Array
(
    [0] => Array
        (
            [video_id] => 14
            [video_title] => test1
            [video_category_name] => Beginner
            [video_category] => 1
        )

    [1] => Array
        (
            [video_id] => 18
            [video_title] => test
            [video_category] => 1
            [video_category_name] => Beginner
        )

    [2] => Array
        (
            [video_id] => 17
            [video_title] => first
            [video_category] => 3
            [video_category_name] => Mobility
        )

    [3] => Array
        (
            [video_id] => 19
            [video_title] => second
            [video_category] => 3
            [video_category_name] => Mobility
        )
)

我期望这个数组:

(
    [0] => Array
    (

         [ctg_name] => Beginner
          [cat_id] => 1
          [ data]  => Array
                (
                (
                    [0] => Array
                    (

                        [video_id] => 14
                        [video_title] => test1
                        [video_category_name] => Beginner
                        [video_category] => 1
                    )
                    [1] => Array
                    (

                         [video_id] => 18
                        [video_title] => test
                        [video_category] => 1
                        [video_category_name] => Beginner
                    )
                )   

    )
     [1] => Array
    (

          [ctg_name] => Mobility
          [cat_id] => 3
          [ data]  => Array
                (
                    [0] => Array
                    (

                        [video_id] => 17
                        [video_title] => first
                        [video_category] => 3
                        [video_category_name] => Mobility
                    )
                    [1] => Array
                    (

                         [video_id] => 19
                        [video_title] => second
                        [video_category] => 3
                        [video_category_name] => Mobility
                    )
                ) 
    )
)

我尝试过这个,但没有得到我预期的结果。

foreach($video as $val){
            $result[$val['video_category']][] = $val;
        }

它返回如下:

     Array
(
    [1] => Array
        (
                    [0] => Array
                    (

                        [video_id] => 14
                        [video_title] => test1
                        [video_category_name] => Beginner
                        [video_category] => 1
                    )
                    [1] => Array
                    (

                         [video_id] => 18
                        [video_title] => test
                        [video_category] => 1
                        [video_category_name] => Beginner
                    )
        )  

    [3] => Array
    (
         [0] => Array
                (

                    [video_id] => 17
                    [video_title] => first
                    [video_category] => 3
                    [video_category_name] => Mobility
                )
                [1] => Array
                (

                     [video_id] => 19
                    [video_title] => second
                    [video_category] => 3
                    [video_category_name] => Mobility
                )


    )
)    

有谁有有效的方法来做到这一点? 请帮我 谢谢


试试这个代码

<?php
$arr = array(
    0 => array
    (
        'video_id' => 14,
        'video_title' => 'test1',
        'video_category_name' => 'Beginner',
        'video_category' => 1
    ),
    1 => array
    (
        'video_id' => 18,
        'video_title' => 'test',
        'video_category' => 1,
        'video_category_name' => 'Beginner'
    ),
    2 => array
    (
        'video_id' => 17,
        'video_title' => 'first',
        'video_category' => 3,
        'video_category_name' => 'Mobility'
    ),
    3 => array
    (
        'video_id' => 19,
        'video_title' => 'second',
        'video_category' => 3,
        'video_category_name' => 'Mobility'
    )
);
echo "<pre>";
$newArr = array();
foreach($arr as $k=>$v){
    $newArr[$v['video_category_name']]['ctg_name']=$v['video_category_name'];
    $newArr[$v['video_category_name']]['cat_id']=$v['video_category'];
    $newArr[$v['video_category_name']]['data'][]=$v;
}
$newArr1 = array();
foreach($newArr as $k=>$v){
   $newArr1[] = $v;
}
print_r($newArr);
?>

Output

Array
(
    [Beginner] => Array
        (
            [ctg_name] => Beginner
            [cat_id] => 1
            [data] => Array
                (
                    [0] => Array
                        (
                            [video_id] => 14
                            [video_title] => test1
                            [video_category_name] => Beginner
                            [video_category] => 1
                        )

                    [1] => Array
                        (
                            [video_id] => 18
                            [video_title] => test
                            [video_category] => 1
                            [video_category_name] => Beginner
                        )

                )

        )

    [Mobility] => Array
        (
            [ctg_name] => Mobility
            [cat_id] => 3
            [data] => Array
                (
                    [0] => Array
                        (
                            [video_id] => 17
                            [video_title] => first
                            [video_category] => 3
                            [video_category_name] => Mobility
                        )

                    [1] => Array
                        (
                            [video_id] => 19
                            [video_title] => second
                            [video_category] => 3
                            [video_category_name] => Mobility
                        )

                )

        )

)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 通过键和值创建数组 的相关文章

  • 如何在 Matlab 中将数组打印到 .txt 文件?

    我才刚刚开始学习Matlab 所以这个问题可能非常基本 我有一个变量 a 2 3 3 422 6 121 9 4 55 我希望将值输出到 txt 文件 如下所示 2 3 3 422 6 121 9 4 55 我怎样才能做到这一点 fid f
  • VBScript:函数返回一个数组

    我有一些 VBScript 代码 其中函数返回一个数组 function PreProcessFile sFile dim deData 3 populate deData with strings PreProcessFile deDat
  • PHP - 按后退按钮时 Session_Destroy

    这是我的问题 我有一个名为login php 的登录页面 不包含HTML 代码 当用户正确输入其凭据时 他会被重定向到特定页面 在本例中我们将使用 test php 该页面上的唯一链接会注销当前会话 并将用户返回到index html 我的
  • Java中对数组进行排序

    我正在尝试编写一个由 10 个整数组成的数组组成的程序 这些整数都有一个随机值 到目前为止一切顺利 但是 现在我需要按照从最低值到最高值的顺序对它们进行排序 然后将其打印到屏幕上 我该怎么做呢 抱歉 这么小的程序有这么多代码 我不太擅长循环
  • 我的输入数组不断地自我写入

    每次我将一个对象传递给数组时 它都会覆盖前一个条目 有人能发现为什么会发生这种情况吗 addbook 当我输入名称和作者时 它会分配一个值 但是当输入另一个标题和作者时 它会覆盖以前的条目 public class library stat
  • 如何在特定视图上禁用 yii-debug-toolbar?

    我怎样才能禁用yii debug toolbar在特定视图上 特别是在部分渲染视图上 这可能吗 p s Yii debug toolbar不幸的是 它不作为下面的标签存在 将其放入您的布局或视图文件中 if class exists yii
  • PHP 中是否有相当于 subprocess 的东西?

    在 Java 和 Python 中 你有ProcessBuilder or 子流程 https docs python org 2 library subprocess html可让您使用未转义字符串轻松启动进程的模块 例如 ls some
  • 找到不(必要)与二进制矩阵中的图像边界对齐的最大矩形

    我在用这个解决方案 https stackoverflow com questions 2478447 find largest rectangle containing only zeros in an nn binary matrix在
  • 在codeigniter中处理存储过程输出参数

    我在 mysql 中有一个带有输出参数的存储过程 我需要将结果发送到使用 codeigniter 的 php 寄存器模式 public function registerUser data sql call register new use
  • 用 PHP 发送电子邮件 - 空白电子邮件接收

    我正在尝试使用 PHP 发送电子邮件 我的问题实际上是 发送的电子邮件是空白的 我的 PHP 函数 function sendMail template Email Subject USR Id USR Email postdata htt
  • 使用准备好的语句的 SQL ORDER BY

    我已经尝试了该代码的所有不同类型的变体 但无法使其工作 任何人都可以指出我正确的方向吗 if isset GET s And isset GET o if strip tags htmlspecialchars GET s s sortin
  • 在 CGI 模式下运行时如何覆盖 PHP 配置

    有一些教程告诉我如何在 CGI 模式下运行时覆盖 PHP 配置 但我仍然很困惑 因为很多人都认为服务器运行在 Linux 上 虽然我需要这样做also在 Windows 上 我的主机确实使用 Linux 但我的本地开发计算机使用 Windo
  • PHP 从 MSSQL 存储过程获取返回值

    我无法从 SQL Server MSSQL 2012 SP 获取 OUTPUT 参数以返回 PHP 我的存储过程是 CREATE PROCEDURE spGetNextSeqID ID AS INT OUTPUT AS BEGIN BEGI
  • PHPStorm - 如何设置实时编辑[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我刚刚安装 PHPStorm 但在实
  • PHP 相对于 ASP.NET 有什么优势? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 xml 加载到 php 文件时出现“xmlParseEntityRef:无名称”警告

    我正在使用 php 读取 xmlsimplexml load file 然而 当尝试加载 xml 时 它会显示警告列表 Warning simplexml load file function simplexml load file
  • str_word_count 似乎不适用于俄语

    当我在俄语中使用 str word count 时 我的字数统计很差 我配置为 UTF 8 运行 php 5 5 28 以下代码返回 1 echo str word count 1963 60
  • 数组 (UUID[ ]) 会破坏 1NF 吗?

    我的问题是包含 UUID 数组的字段是否会破坏范式 http en wikipedia org wiki Database normalization 在包含数组之前位于 NF 中的表中 原表 CREATE TABLE Floor Floo
  • json支持阿拉伯字符吗?

    我想问一个简单的问题 json 是否支持阿拉伯字符 我的意思是当我搜索类似以下内容时 values database gt get by name echo json encode array returnedFromValue gt va
  • wordpressfunctions.php - 为每个帖子类别使用不同的页面模板

    我想连接到 save post 函数 找出帖子所属的类别 然后为每个类别中的帖子分配不同的页面模板 我已经尝试了大约 30 个不同的版本 但都没有成功 有人可以帮我指出正确的方向吗 add action save post assign c

随机推荐

  • 找到矩阵中的主对角线 - 方案

    我需要从方阵中提取主对角线 1 2 3 4 5 6 gt 1 5 9 7 8 9 我有以下代码 我需要替换 具有适当的功能 define diag m if null m cons m diag map m Input diag 1 2 3
  • 我如何使用 python 从键盘发送命令。我正在尝试自动化 mac 应用程序 (GUI)

    我正在尝试使用 python 自动化应用程序 我需要帮助通过 python 发送键盘命令 我正在使用 powerBook G4 您可以使用 osascript 工具从 python 脚本调用 AppleScript import os cm
  • 如何查找 PDF 中所有出现的特定文本并在上方插入分页符?

    我对 PDF 有一个棘手的要求 我需要在 pdf 中搜索特定字符串 属性编号 每次找到这个 我都需要在上面添加一个分页符 我可以访问 IText 和 Spire PDF 我首先查看 IText 我从这里的其他帖子中确定我需要使用 PDF S
  • 保留实体框架查询缓存

    我有一个 ASP NET MVC 5 Web 应用程序并使用 EF 6 1 访问我的数据库 我有一些相当复杂的 LINQ 查询 编译需要长达 10 秒的时间 但执行后只需几毫秒 EF 确实会很好地缓存此查询 并且第二次执行查询时 它会在这几
  • 从 Mac 测试 IE 的最佳工具 - 无需 PC [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 测试网站设计的跨浏览器兼容
  • 两个带有 count 的语句相除返回零

    我是 SQL 新手 使用 SQLiteStudio 并且正在尝试使用一些聚合函数 我想找到数据子集中个体数量小于 575 的比例 但查询始终返回零 SELECT A B 100 FROM SELECT COUNT AS A FROM Mal
  • 使用 RequestBody 的 POST 请求不起作用

    在下面的示例中 我使用 POST 和 GET 方法 post 是初始化一个变量 GET 是获取这个变量 我使用 Postman 来发出请求 我收到错误 RequestBody value val cant resolve method va
  • 使用自定义属性有效吗?

    我想取消任何链接并为每个链接添加额外的属性 下面是我是如何实现这一目标的 function anularEnlaces nav a each function var href this attr href var id this attr
  • C# 按字母顺序和长度对 Arraylist 字符串进行排序

    我正在尝试排序ArrayList of String Given A C AA B CC BB Arraylist Sort gives A AA B BB C CC 我需要的是 A B C AA BB CC ArrayList list
  • +0和-0一样吗?

    阅读通过ECMAScript 5 1 规范 0 and 0是杰出的 那么为什么呢 0 0评估为true JavaScript 使用IEEE 754 标准来表示数字 从维基百科 签名零为零并带有相关符号 在普通算术中 0 0 0 然而 在计算
  • Android 应用程序 - 如何获取联系人的生日

    我正在开发一个 Android 应用程序 我需要将每个联系人的生日与当前日期进行匹配 如果是的话 则处理一些业务逻辑 这需要完整的联系人详细信息 我找到了分别读取联系人生日或联系人本身的方法 但对如何将两者结合起来感到困惑 有人可以提供一些
  • 如何用段落标签包围所有文本片段? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想在任何文本项周围放置段落标签 因此应该避免表格和其他元素 我怎么做 我想它可以用某种方式制成preg replace 以下是一些可以帮助您完成您想做的事情的函数 nl2p T
  • Yii2 gridview - 模式仅在单击第一行时显示

    我正在使用 kartik grid GridView 和 kartik grid ExpandRowColumn 来显示摘要信息 在 ExpandRowColumn 上 我有另一个 gridview 来列出详细信息 这部分工作正常 在 Ex
  • swift 3 Playground 中的回调[重复]

    这个问题在这里已经有答案了 您好 我正在尝试在操场上执行这行代码 但得到任何响应输出 我的代码如下 func testCallbackEmpty callback escaping gt Void DispatchQueue main as
  • 如何在 WordPress 插件中使用多媒体上传器?

    我尝试在 WordPress 插件中添加多重上传选项 我在插件中重复了此代码 两次 仅更改了 id 名称
  • 我可以使用反射访问 ItemsControl 的 ItemsHost 吗?

    我正在创建自定义ItemsControl这是源自DataGrid 我需要访问 ItemsHost 这是Panel实际上包含行DataGrid 我见过一些丑陋的技巧来做到这一点 但我认为它们比使用反射更糟糕 那么我可以使用反射访问 Items
  • 如何使用/导入http模块?

    我一直在玩Angular 2 快速入门 如何在 Angular 2 中使用 导入 http 模块 我看过Angular 2 Todo s js 但它不使用 http 模块 我已经添加 ngHttp angular http to depen
  • to_number Oracle SQL 中数字格式的动态长度

    我有一个表 其中的数字存储为varchar2和 作为小数点分隔符 例如 5 92843 我想使用 来计算这些数字 因为这是系统默认值 并且使用了以下内容to number去做这个 TO NUMBER number 99999D9999 NL
  • Neo4j 桌面打开时出错 - “无法读取未定义的属性“名称”

    我有一个运行 Windows Server 2016 的盒子 我在这里找到了有关 MAC 的问题的答案 neo4j 初始化错误 TypeError 无法读取未定义的属性 名称 这个答案似乎在 Windows 中不起作用 因为删除 AppDa
  • PHP 通过键和值创建数组

    我在下面的 PHP 代码中有一个数组 我想将该数组转换为按数据值分组 简化数组总是很困难 Array 0 gt Array video id gt 14 video title gt test1 video category name gt