【问题标题】:How to extract the keys and values of an array without index [closed]如何提取没有索引的数组的键和值[关闭]
【发布时间】:2013-03-30 00:52:49
【问题描述】:

我想从一个数组(带有键和值的原始数组)中提取数据。提取数组后,我想要两个新数组,第一个只有键,第二个只有值,并且都没有索引(参见代码示例)。

// original array 
$array = array(
    "name1"=>500
   ,"name2"=>400
   ,"name3"=>300
   ,"name4"=>200
   ,"name5"=>100
);

// after extraction
$array1 = array('name1','name2','name3','name4','name5');
$array2 = array(500,400,300,200,100);

// not like this
// $array1 = array(0=>'name1',1=>'name2',2=>'name3',3=>'name4',4=>'name5);
// $array2 = array(0=>500,1=>400,2=?300,3=>200,4=>100);

【问题讨论】:

  • PHP 数组中的每个项目必须 有一个索引。您的“不喜欢这样”的数组与您想要的数组完全相同。

标签: php arrays extract


【解决方案1】:
$keys = array_keys($array);
$values = array_values($array);

但请注意,就 PHP 而言,array(0=>'item')array('item')完全相同。没有索引的 php 数组项是不存在的。如果您不提供索引,PHP 将默默地添加一个数字索引。

【讨论】:

    【解决方案2】:
    $array1 = array_keys($array);
    $array2 = array_values($array);
    

    嗯,你可以阅读here

    在计算机科学中,数组数据结构或简称为数组是 由元素集合组成的数据结构(值或 变量),每个都由至少一个数组索引或键标识。一个 存储数组以便计算每个元素的位置 通过数学公式从其索引元组中提取。

    【讨论】:

    • 请注意,这是为处理 HTTP 请求和 JSON 值的人准备的。我成功通过创建一个数组并逐个添加所需的元素来获得一个没有索引的数组。 print_r 函数仍然显示索引,但是当我在 HTTP 响应中返回创建的数组时,我的前端只得到了值(例如 ['a', 'b', 'c'])。 Live demo here。我遇到的问题是 array_filter 正在返回索引(在 JSON 中类似于 {'0': 'a', '1': 'b', '2': 'c'}
    • print_r 函数的作用If given an array, values will be presented in a format that shows keys and elements。由于 json 格式,您的前端可能会“自动”将其识别为数组。
    • 虽然我知道 print_r 会这样做,但我遇到了与 OP 相同的问题,我通过将值一一插入到数组中(在循环中)来解决它。 JSON在修复之前显示{0: 'a', 1: 'b'},在我使用循环之后它是['a','b']
    猜你喜欢
    • 2021-03-17
    • 2016-10-10
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    相关资源
    最近更新 更多