我有一个看起来像下面的数组。
$ => 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"
| )
)
答案 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查询结果进行格式化的。