检查尴尬的数组

时间:2011-02-02 00:45:02

标签: php multidimensional-array

我有一个看起来像下面的数组。

$ => Array (2)
(
|    ['0'] => Array (2)
|    (
|    |    ['0'] = String(1) "2"
|    |    ['1'] = String(1) "2"
|    )
|    ['1'] => Array (2)
|    (
|    |    ['0'] = String(1) "2"
|    |    ['1'] = String(1) "1"
|    )
)

但是只有一个阵列也可能更大或更小。

每个数组表示从数据库返回的一行结果。

第一个字段[0] [0]是一个需要的ID号。

[0] [1]是我需要检查的值。

我需要知道它是否存在,说我是2还是1还是不是。

如果我没有,那么我需要将ID([0] [0])关闭发送到另一个功能。

有时我可能会得到更多或更少的结果。所以这需要使用循环来完成,但我正在努力使其正确,每次我认为我有一些代码可以工作它不会。

任何人都可以帮忙吗?

编辑:

这是我到目前为止所得到的......

$tweet_sentiment = array();
$analyzer = array();
foreach($get_sentiment as $sentiment) {
    $tweet_id = $sentiment[0];
    $analyzer[] = $sentiment[1];
    $tweet_sentiment[$tweet_id] = $analyzer;
}

这会改变数组查看以下内容的方式:

$ => Array (1)
(
|    ['2'] => Array (2)
|    (
|    |    ['0'] = String(1) "2"
|    |    ['1'] = String(1) "1"
|    )
)

4 个答案:

答案 0 :(得分:1)

这就是我理解你的问题的方法。

第一个循环遍历主数组并处理其index =>数组2。

第二个循环遍历第二个数组并检查该数组的值是否为“value1”。如果是,则执行doWhenValueIsThere(),否则执行doWhenValueIsNotThere()

您必须根据需要创建两个功能。

  foreach ($array1 as $index => $array2) 
  {
    foreach (array_keys($array2) as $id)
    {
       if ($array2[$id] == "value1") doWhenValueIsThere();
       else doWhenValueIsNotThere();
    }
  }

答案 1 :(得分:0)

也许你可以像这样做检查:

array_key_exists(1, $x[1]) ? $x[1][1] : otherFunction($x[0][0])

其中$ x是你的数组。

答案 2 :(得分:0)

试试这个

<?php
$tweet_sentiment = array();
$analyzer = array();
foreach($get_sentiment as $sentiment) {
    $tweet_id = $sentiment[0];
    if(isset($sentiment[1])){
      $analyzer[] = $sentiment[1];
      $tweet_sentiment[$tweet_id] = $analyzer;
    }
}
?>

答案 3 :(得分:0)

我最终更改了一些内部SQL语句,以便我的数据库结果不同。

我发现我使用的SQL语句和返回的数组太复杂,无法以我想要的方式处理 - 主要是由于它是如何通过SQL查询结果进行格式化的。