【问题标题】:Split one array into two将一个数组一分为二
【发布时间】:2014-07-09 10:13:09
【问题描述】:

我有一个这样的日期数组

Array
(
    [0] => Array
        (
            [imageName] => WNgrRdqZ
            [alt] => alt text
        )

    [1] => Array
        (
            [imageName] => xoPS0udB
            [alt] => Alt
        )

)

我想格式化它,所以我得到一个imageNames 数组和一个alt 数组。我可以简单地使用 foreach 循环来做到这一点,但我很好奇是否有一个内置的 PHP 函数我可以使用而不是重写其他东西。我在 PHP 手册中还没有找到任何有用的东西。

编辑:它也可以分成 1 个数组和 2 个子数组,例如

Array
    (
        ['imageName'] => Array(..),
        ['alt'] => Array(...)
    )

【问题讨论】:

  • 来自手册:array_column
  • 我怎么错过了!谢谢 :)。如果您将其发布为答案,我会为您接受。
  • 只要接受 Sudecs 的回答 ;)
  • 我会这样做的:P 让我吧!

标签: php arrays


【解决方案1】:

你可以使用array_column():

$imageName = array_column($Array, 'imageName');
$alt = array_column($Array, 'alt');

【讨论】:

  • 他想要这样的输出数组 Array ( [imagename] => Array ( [0] => WNgrRdqZ [1] => xoPS0udB ) [alt] => Array ( [0] => alt文本 [1] => Alt ) )
  • 我认为那里没有问题。拆分列后,只需将 2 个结果数组合二为一
  • 早期版本的php不支持array_column
【解决方案2】:

你可以使用array_reduce:

<?php

$data = array
(
    array
    (
        'imageName' => 'WNgrRdqZ',
        'alt' => 'alt text'
    ),

    array
    (
        'imageName' => 'xoPS0udB',
        'alt' => 'Alt'
    )
);


$reduced = array_reduce($data,function($carry, $item){
    $carry['imageName'][] = $item['imageName'];
    $carry['alt'][] = $item['alt'];
    return $carry;
},array());

print_r($reduced);

工作示例https://ideone.com/48JXvL

【讨论】:

    【解决方案3】:

    请查看此代码

    <?php
    $arraystest = array(0 => array('imageName' => 'WNgrRdqZ', 'alt' => 'alt text'), 1 => array('imageName' => 'xoPS0udB', 'alt' => 'Alt'));
    $i = 0;
    $newarray = array();
    foreach ($arraystest as $item) {
        $newarray['imagename'][$i] = $item['imageName'];
        $newarray['alt'][$i] = $item['alt'];
        $i++;
    }
    
    print_r($newarray);
    exit;
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 2014-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多