使用php json_decode和1d和2d数组


Using php json_decode with 1d and 2d array

我在PHP中使用json_decode来解码json对象,该对象可能具有1d数组或2d数组的值:

{"Cell":{"@column":"ZjE6dW5pdmVyc2l0eQ==","@timestamp":"1425598820484","$":"MC44MDc2NDEwNDg0MjI5MjMy"}}

{"Cell":[{"@column":"ZjE6YQ==","@timestamp":"1425599309809","$":"MC4wNTYzMzgwMjgxNjkwMTQwODY="},{"@column":"ZjE6YW5k","@timestamp":"1425599309809","$":"MC4wNTYzMzgwMjgxNjkwMTQwODY="},{"@column":"ZjE6Y2F0Y2hlcw==","@timestamp":"1425599309809","$":"MC4wNDIyNTM1MjExMjY3NjA1Ng=="},{"@column":"ZjE6aQ==","@timestamp":"1425599309809","$":"MC4wOTg1OTE1NDkyOTU3NzQ2NA=="},{"@column":"ZjE6dGhhdA==","@timestamp":"1425599309809","$":"MC4xNjkwMTQwODQ1MDcwNDIyNQ=="}]}

并且我使用$Cell=$json["Cell"]来访问这些元素。我面临的问题是,第二种情况很好,我得到了一个数组数组,而第一种应该是单元素数组,但被解释为3元素数组。

难道不能检查元素是否有键吗?像这样:

if (isset($json['Cell']['@column']) {
    // do stuff with single-element
} else {
    // it is a collection
}