数组丢失了一把钥匙

时间:2013-07-13 22:23:24

标签: php

你好我有一段代码与数组的例子,问题是我丢失了一个数组的键。该数组是一个多维数组,我在这里发布了一个示例版本,因为我有很多键(发布时间太长)

$columns = array(
    "1" => array(
    "foo" => "bar",
    "bar" => "foo",
    "foo" => "bar",
    "bar" => "foo",
    "foo" => "bar",
    "bar" => "foo",
    "foo" => "bar",
    "bar" => "foo",
    "foo" => "bar",
    "bar" => "foo",
);
$array = array(
    "1" => array(
    "foo" => "bar",
    "bar" => "foo",
    "foo" => "bar",
    "bar" => "foo",
    "foo" => "bar",
    "bar" => "foo",
    "foo" => "bar",
    "bar" => "foo",
    "foo" => "bar",
    "bar" => "foo",
),
    "2" => array(
    "1" => "bar",
    "2" => "foo",
    "3" => "bar",
    "4" => "foo",
    "5" => "bar",
    "6" => "foo",
    "7" => "bar",
    "8" => "foo",
    "9" => "bar",
    "10" => "foo",
)
);

确定在这两个数组中我有一个固定的数字或键,我想要实现的是从第一个数组中获取值并将它们用作我的第二个数组中的键。到目前为止这么好,但当我做第二个foreach从第一个获取值并将它们作为键在第二个方式我从$ array(我认为它重写)我的键丢失的方式。你可以帮我解决这个问题,因为我没有想法如何修复它。

foreach($array as $key => $val)
{
    array_splice($val, 66);
    foreach($val as $k => $row) 
    {
        if ( isset($columns[$k])) 
        {
            $info[$columns[$k]] = $row;
        }
    }
    return $info;
}

更新

我想在这里实现的是使用数组创建一个数组用于键,另一个用于值。后来发现我可以用array_combine来做。解决了我的问题

2 个答案:

答案 0 :(得分:1)

PHP不区分1和“1”作为数组键。

以下是相同的:

$array["1"] = $something;
$array[1] = $something;

它们都分配给$array中的第二个元素(可能会覆盖现有数据)。

答案 1 :(得分:1)

有一种更简单的方法:使用array_flip函数。

相关问题