首页 > 解决方案 > php循环内的值更改时中断

问题描述

我想制作一个循环 php 从 json 文件中提取单词。一切都很好,但我只需要在 x 值变化时换行。

$a = $cell["_x"];
foreach ($cell as $key => $value ){
    if ($a = $a+1) {
        echo "<br>";
    else {
        echo $value3["_solution"] ;              
    }
}

JSON:

"cell": [
    {
        "_x": "1",
        "_y": "1",
        "_solution": "F",
        "_number": "1"
    },
    {
        "_x": "1",
        "_y": "2",
        "_solution": "A",
        "_number": "15"
    },
    {
        "_x": "1",
        "_y": "3",
        "_solution": "T",
        "_number": "18"
    },
    {
        "_x": "1",
        "_y": "4",
        "_solution": "L",
        "_number": "21"
    },
    {
        "_x": "1",
        "_y": "5",
        "_solution": "I",
        "_number": "24"
    },
    {
        "_x": "1",
        "_y": "6",
        "_solution": "P",
        "_number": "30"
    },
    {
        "_x": "1",
        "_y": "7",
        "_type": "block"
    },
    {
        "_x": "1",
        "_y": "8",
        "_solution": "S",
        "_number": "37"
    },
    {
        "_x": "1",
        "_y": "9",
        "_solution": "H",
        "_number": "42"
    },
    {
        "_x": "1",
        "_y": "10",
        "_solution": "O",
        "_number": "45"
    },
    {
        "_x": "1",
        "_y": "11",
        "_solution": "P",
        "_number": "51"
    },
    {
        "_x": "1",
        "_y": "12",
        "_type": "block"
    },
    {
        "_x": "1",
        "_y": "13",
        "_solution": "O",
        "_number": "59"
    },
    {
        "_x": "1",
        "_y": "14",
        "_solution": "T",
        "_number": "63"
    },
    {
        "_x": "1",
        "_y": "15",
        "_solution": "C",
        "_number": "66"
    },
    {
        "_x": "2",
        "_y": "1",
        "_solution": "O",
        "_number": "2"
    },
    {
        "_x": "2",
        "_y": "2",
        "_solution": "F"
    },
    {
        "_x": "2",
        "_y": "3",
        "_solution": "F"
    },
    {
        "_x": "2",
        "_y": "4",
        "_solution": "I"
    },
    {
        "_x": "2",
        "_y": "5",
        "_solution": "C"
    },
    {
        "_x": "2",
        "_y": "6",
        "_solution": "E"
    },

1我也尝试过 while 循环、for 循环等,但是当 x 值从变为时,没有函数可以中断2

例如:所有功能都会打印 OTCOFFICE 或者是两个字

OTC 
OFFICE

标签: php

解决方案


那不是有效的 JSON,你有解析错误,但忽略它;假设您已经使用以下方法对其进行了解码:

$cell = json_decode($j, true)["cell"];

你只需要检查当前_x不等于前一个,然后设置它。

$a = reset($cell)["_x"];

foreach ($cell as $key => $value ) {
    if($value["_x"] != $a) {
        $a = $value["_x"];
        echo "<br>";
    }
    echo $value["_solution"] ?? "none";  // set to whatever
}

_solution不会在某些数组中退出,所以我回应none或替换为<br>或其他。


推荐阅读