带有foreach的PHP多维数组

时间:2014-01-14 20:25:47

标签: php arrays multidimensional-array foreach

尝试使用来自db ...

的记录使用foreach构建多维数组

enter image description here

$servDetails = array(
    // CSS Servers
    'css' => array(
        'server1' => array(
            'id' => 'id1',
            'type' => 'css',
            'host' => 'ip:port'
        ),
        'server2' => array(
            'id' => 'id2',
            'type' => 'css',
            'host' => 'ip:port'
        )
    )
);

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

假设您已经执行并填充了一个关联数组:

// create your containing array
$servDetails = array('css' => array());

// iterate over the results
foreach ($results as $result) {
    $servDetails['css'][$result['server_name']] = array(
        'id' => $result['server_id'],
        'type' => 'css',
        'host' => $result['server_ip'] . ':' . $result['server_port']
    );
}

我不确定样本中'css'部分的来源,因此您可能需要对其进行调整以使其动态化(如果它实际上是动态的)。

当从db:

中提取结果时,您也可以直接构建此数组结构
if ($results = $mysqli->query($query)) {
    while ($result = $results->fetch_assoc()) {
        $servDetails['css'][$result['server_name']] = array(
            'id' => $result['server_id'],
            'type' => 'css',
            'host' => $result['server_ip'] . ':' . $result['server_port']
        );
    }