繁体   English   中英

PHP - 更新密钥的多维数组值

[英]PHP - update multidimensional array value where key

我有以下数组:

 $sections = array(
                0 => array(
                    'id' => 'betrothed_details',
                    'name' => 'About us',
                    'order' => '1',
                    'menu_name' => '',
                    'display' => '1'
                ),
                1 => array(
                    'id' => 'events',
                    'name' => 'Events',
                    'display' => '1',
                    'order' => '2',
                    'menu_name' => ''
                ),
                2 => array(
                    'id' => 'gallery',
                    'name' => 'Gallery',
                    'order' => '3',
                    'menu_name' => '',
                    'display' => '1'
                ),
            );

我创建了拖放排序,wchich以正确的顺序传递id,就像

$ids = array('events','betrothed_details','gallery')

对于每个$ ids数组,我需要更改$sections数组中的相应order值。

$i = 1;
foreach ($ids as $id) {

  CHANGE THE ORDER VALUE HERE to $i
  $i++;
}

这是怎么做到的?

尝试这个:

<?php

$sections = array(
    0 => array(
        'id' => 'betrothed_details',
        'name' => 'About us',
        'order' => '1',
        'menu_name' => '',
        'display' => '1'
    ),
    1 => array(
        'id' => 'events',
        'name' => 'Events',
        'display' => '1',
        'order' => '2',
        'menu_name' => ''
    ),
    2 => array(
        'id' => 'gallery',
        'name' => 'Gallery',
        'order' => '3',
        'menu_name' => '',
        'display' => '1'
    ),
);
$ids = array('events', 'betrothed_details', 'gallery');
$sorted_sections = array();
foreach ($ids as $id) {
    foreach ($sections as $section) {
        if ($section['id'] == $id) {
            $sorted_sections[] = $section;
            break;
        }
    }
}
print_r($sorted_sections);

演示链接

暂无
暂无

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

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