Php 以自定义方式显示多维数组

Php 以自定义方式显示多维数组,php,Php,我有一个多维数组,它是这样的: Array ( [Monday] => Array ( [open] => 05.00 PM [close] => 04.00 PM [state] => 0 ) [Tuesday] => Array ( [open] => [close] =

我有一个多维数组,它是这样的:

Array
(
    [Monday] => Array
        (
            [open] => 05.00 PM
            [close] => 04.00 PM
            [state] => 0
        )

    [Tuesday] => Array
        (
            [open] => 
            [close] => 
            [state] => 1
        )

    [Wednesday] => Array
        (
            [open] => 03.00 AM
            [close] => 06.00 PM
            [state] => 0
        )

    [Thursday] => Array
        (
            [open] => 
            [close] => 
            [state] => 1
        )

    [Friday] => Array
        (
            [open] => 05.00 PM
            [close] => 03.00 PM
            [state] => 0
        )

    [Saturday] => Array
        (
            [open] => 05.00 PM
            [close] => 06.00 PM
            [state] => 0
        )

    [Sunday] => Array
        (
            [open] => 
            [close] => 
            [state] => 1
        )

) 
Monday       - 05.00 PM - 04.00 PM
Tuesday      - Closed
Wednesday    - 03.00 AM - 06.00 PM
Thursday     - Closed
Friday       - 05.00 PM - 03.00 PM
Saturday     - 05.00 PM - 06.00 PM
Sunday       - Closed
使用此数组,我希望创建如下输出:

Array
(
    [Monday] => Array
        (
            [open] => 05.00 PM
            [close] => 04.00 PM
            [state] => 0
        )

    [Tuesday] => Array
        (
            [open] => 
            [close] => 
            [state] => 1
        )

    [Wednesday] => Array
        (
            [open] => 03.00 AM
            [close] => 06.00 PM
            [state] => 0
        )

    [Thursday] => Array
        (
            [open] => 
            [close] => 
            [state] => 1
        )

    [Friday] => Array
        (
            [open] => 05.00 PM
            [close] => 03.00 PM
            [state] => 0
        )

    [Saturday] => Array
        (
            [open] => 05.00 PM
            [close] => 06.00 PM
            [state] => 0
        )

    [Sunday] => Array
        (
            [open] => 
            [close] => 
            [state] => 1
        )

) 
Monday       - 05.00 PM - 04.00 PM
Tuesday      - Closed
Wednesday    - 03.00 AM - 06.00 PM
Thursday     - Closed
Friday       - 05.00 PM - 03.00 PM
Saturday     - 05.00 PM - 06.00 PM
Sunday       - Closed
我尝试了2个foreach循环,但无法让它显示预期的输出

foreach ($result as $days => $values) {
    echo "$days";
    foreach ($values as $k) {
        echo " - $k";
    }
    echo "<br/>";
}
有人能告诉我怎么才能弄明白吗


注意:如果
state=0
它不需要显示,
state=1
它应该
关闭

你应该检查
状态
索引是否存在(1)比如:
如果($value['state'))

试试这个:

foreach ($result as $days => $values) {
    echo "$days";
    if ($values['state']) {
        echo " - Closed";
    } else {
        echo ": ".$values['open']." - ".$values['close'];
    }
    echo "<br/>";
}
foreach($result as$days=>$value){
回音“$days”;
如果($values['state'])){
回声“-关闭”;
}否则{
echo“:”$values['open'].“-”$values['close'];
}
回声“
”; }
您应该检查
状态
索引是否存在(1)或不存在(0),例如:
如果($values['state'))

试试这个:

foreach ($result as $days => $values) {
    echo "$days";
    if ($values['state']) {
        echo " - Closed";
    } else {
        echo ": ".$values['open']." - ".$values['close'];
    }
    echo "<br/>";
}
foreach($result as$days=>$value){
回音“$days”;
如果($values['state'])){
回声“-关闭”;
}否则{
echo“:”$values['open'].“-”$values['close'];
}
回声“
”; }
像这样执行foreach循环:

foreach ($result as $days => $values) {
    echo $days." - ";
    echo $values["state"] ? "Closed" : $values["open"]." - ".$values["close"];
    echo "<br />";
}
foreach($result as$days=>$value){
回声$days.“-”;
echo$values[“state”]?“Closed”:$values[“open”]。“-”$values[“close”];
回声“
”; }
像这样执行foreach循环:

foreach ($result as $days => $values) {
    echo $days." - ";
    echo $values["state"] ? "Closed" : $values["open"]." - ".$values["close"];
    echo "<br />";
}
foreach($result as$days=>$value){
回声$days.“-”;
echo$values[“state”]?“Closed”:$values[“open”]。“-”$values[“close”];
回声“
”; }
使用html表格执行foreach循环,以使当前行对齐

$data = "<table >";
foreach($result as $day=>$value) {
    if($value["state"]==1) {
        $value = "<td colspan='3'> Closed </td>";   
    } else {
        $value = "<td> $value[open] </td><td> - </td><td> $value[close] </td>";;
    }

    $data .= "<tr><td> $day </td><td> - </td> $value</tr>";
}
$data .= "</table>";

echo $data;
$data=”“;
foreach($结果为$天=>$值){
如果($value[“state”]==1){
$value=“已关闭”;
}否则{
$value=“$value[open]-$value[close]”;;
}
$data.=“$day-$value”;
}
$data.=“”;
回波数据;

使用html表格执行foreach循环,以使当前行对齐

$data = "<table >";
foreach($result as $day=>$value) {
    if($value["state"]==1) {
        $value = "<td colspan='3'> Closed </td>";   
    } else {
        $value = "<td> $value[open] </td><td> - </td><td> $value[close] </td>";;
    }

    $data .= "<tr><td> $day </td><td> - </td> $value</tr>";
}
$data .= "</table>";

echo $data;
$data=”“;
foreach($结果为$天=>$值){
如果($value[“state”]==1){
$value=“已关闭”;
}否则{
$value=“$value[open]-$value[close]”;;
}
$data.=“$day-$value”;
}
$data.=“”;
回波数据;

1)您不需要为每台电脑配备第二台
foreach
。您只需要子数组中特定数量的值,并且还知道它们的键。直接访问即可。2) 显然,您需要一个
if
语句来根据
状态生成输出。放入一个。如果只想回显$days的值,则不需要在其周围加引号。1)不需要第二个
foreach
。您只需要子数组中特定数量的值,并且还知道它们的键。直接访问即可。2) 显然,您需要一个
if
语句来根据
状态生成输出。输入一个。如果你只想重复$days的值,你不需要在它周围加引号。但是它的输出是这样的-
周一-05.00 PM-04.00 PM-0周二-闭馆周三-03.00 AM-06.00 PM-0周四-闭馆周五-05.00 PM-03.00 PM-0周六-05.00 PM-06.00 PM-0周日-闭馆
@TNK Oo yes,我错过了。这个问题是关于foreach循环所有索引的原因。我搬走了。你不需要foreach,但是它的输出是这样的-
星期一-05.00 PM-04.00 PM-0星期二-0星期三-03.00 AM-06.00 PM-0星期四-0星期五-05.00 PM-03.00 PM-0星期六-05.00 PM-06.00 PM-0星期日-0 Closed
@TNK-Oo是的,我错过了。这个问题是关于foreach循环所有索引的原因。我搬走了。您不需要为每个人设置
foreach