如何使用键/值数组创建数组?

时间:2015-01-23 20:49:35

标签: php mysql arrays

我正在优化一些代码。我可以改变一些代码,有些代码我不能改变。 我正在查询数据库并根据作为新数据的json_decode()数组进行检查。我找到了差异,并根据需要在数据库中添加或删除。

更新:这是我的问题:

  

$ sQuery =" SELECT column1,column2 FROM   my_table WHERE id = my_id;

UPDATE2:

好的,所以我的查询进入了一个我无法改变的自定义查询功能,这就是出现的结果:

    mysqli_result Object
    (
        [current_field] => 0
        [field_count] => 2
        [lengths] => 
        [num_rows] => 2
        [type] => 0
    )

我想以这样的方式解析结果:

Array 
(
    [0] => Array
           (
               [column1] => value
           )
    [1] => Array
           (
               [column2] => value
           )
)

//结束更新2

我试着解析第一个数组以匹配第二个数组的组织,感觉很愚蠢。请帮忙吗?

以下是我尝试的内容:

while ($aRows = $aResults->fetch_assoc()) {
    foreach ($aRows as $iKey => $sValue) {

        if ($iKey % 2 == 0)
            $aPreviousList[$iKey][] = $sValue;

        if ($iKey % 2 == 1)
            $aPreviousList[$iKey][] = $sValue;
    }
}

但它是这样的:

Array
(
    [ixfChangeMethod] => Array
        (
            [0] => 16
            [1] => 11
        )

    [sDetails] => Array
        (
            [0] => some details about 16
            [1] => some details about 11
        )

)

我是否认为这一切都错了,或者我是否有另外一种方法可以解析两个阵列,我可以更好地检查差异?

3 个答案:

答案 0 :(得分:6)

我已经更改了代码,这样更好吗?

while ($aRow = $aResults->fetch_row()) {
    $aPreviousList[] = array($aRow[0] => $aRow[1]);
}

答案 1 :(得分:1)

fetch_assoc返回一个关联数组 fetch_row返回一个数字数组。

所以只需使用fetch_row代替fetch_assoc

答案 2 :(得分:1)

你可以试试这个

while ($aRows = $aResults->fetch_assoc()) 
{
    $aPreviousList[]=array($aRows['column1']=>$aRows['column2']);
}

print_r($aPreviousList);