设置数组键/值对并访问

时间:2018-08-04 16:12:43

标签: php

我通过从MySql导入数据并将两个分别称为$ yearsArray和$ salesArray的独立数组推入$ compData来建立一个名为$ compData的数组。在将这两个数组推入$ compData之前,我首先将它们的['name']分别设置为'Year'和'Sales'。此代码包含在下面。

$sth = mysqli_query($conn, "SELECT * FROM {$tableName} WHERE ID = 'ID_YEAR'");
$yearsArray = array();
$yearsArray['name'] = 'Year';
while($r = mysqli_fetch_array($sth)) {
    For ($n = 1; $n <= $CI_YEARS; $n++){
        $yearsArray['data'][] = $r["Year$n"];
    }
}

$sth = mysqli_query($conn, "SELECT * FROM {$tableName} WHERE ID = 'IS_SALES'");
$salesArray = array();
$salesArray['name'] = 'Sales';
while($rr = mysqli_fetch_assoc($sth)) {
    For ($n = 1; $n <= $CI_YEARS; $n++){
        $salesArray['data'][] = $rr["Year$n"];
    }
}

$compData = array();
array_push($compData,$yearsArray);  // 0
array_push($compData,$salesArray);  // 1

现在,我想使用下面的代码访问并回显$ compData中的数据,但这不起作用。我对PHP不太满意,想知道我是否没有正确使用['Year']和['Sales']标识符。非常感谢您的帮助。

foreach($compData['Year'] as $result) {
  echo $result, '<br>';
}

foreach($compData['Sales'] as $result) {
  echo $result, '<br>';
}

1 个答案:

答案 0 :(得分:0)

您已将'Year'设置为 key 'name' value ,但尝试将其用作 key (另一个数组)。

现在您有

echo $compData[0]['name']; // -> 'Year'
echo $compData[1]['name']; // -> 'Sales'

您可能想要

 $compData = array();
 $compData['Year'] = $yearsArray; 
 $compData['Sales'] = $salesArray; 

而不是array_push。