Php 基于数组的上一个值比较数组
我有一个如下所示的数组:Php 基于数组的上一个值比较数组,php,arrays,Php,Arrays,我有一个如下所示的数组: Array ( [0] => Array ( [START] => COI-COK [RETURN] => CAI - DEL ) [1] => Array ( [START] => COK - AMM [RETURN] => CAI - DEL ) ) 我想检查上一个数组和当前数组的“开始”和“结束”值是否相同。如果
Array (
[0] => Array (
[START] => COI-COK
[RETURN] => CAI - DEL
)
[1] => Array (
[START] => COK - AMM
[RETURN] => CAI - DEL
)
)
我想检查上一个数组和当前数组的“开始”和“结束”值是否相同。如果没有,则打印一些值。我怎么做
这是我的尝试:
foreach($data as $datas)
{
$old_start = $datas['START'];
$old_return = $datas['RETURN'];
...
if( ($old_start == $datas['START']) && ($old_return == $datas['RETURN']))
{
}
else
{
}
}
但它不起作用,因为所有时间old\u start
值都将等于$datas['start']
打印($data)
显示此输出:
Array (
[0] => Array (
[Sl] => 2
[TRAVELDAY] => 2015-11-11
[RETURNDAY] => 2015-11-27
[START] => COI-COK
[RETURN] => CAI - DEL
)
[1] => Array (
[Sl] => 1
[TRAVELDAY] => 2015-11-11
[RETURNDAY] => 2015-11-27
[START] => COK - AMM
[RETURN] => CAI - DEL
)
)
您必须将作业放在比较之后,而不是之前:
$old_start = '';
$old_return = '';
foreach($data as $datas)
{
//....
if($old_start=='' || $old_start == $datas['START'] && $old_return == $datas['RETURN'])
{
//....
}
else
{
//code to be executed
}
$old_start = $datas['START'];
$old_return = $datas['RETURN'];
}
您必须将作业放在比较之后,而不是之前:
$old_start = '';
$old_return = '';
foreach($data as $datas)
{
//....
if($old_start=='' || $old_start == $datas['START'] && $old_return == $datas['RETURN'])
{
//....
}
else
{
//code to be executed
}
$old_start = $datas['START'];
$old_return = $datas['RETURN'];
}
像这样试试
$old_start = "";
$old_return = "";
foreach($data as $datas)
{
if( ($old_start == $datas['START']) && ($old_return == $datas['RETURN']))
{
//true code to be executed
}
else
{
//false code to be executed
}
$old_start = $datas['START'];
$old_return = $datas['RETURN'];
}
像这样试试
$old_start = "";
$old_return = "";
foreach($data as $datas)
{
if( ($old_start == $datas['START']) && ($old_return == $datas['RETURN']))
{
//true code to be executed
}
else
{
//false code to be executed
}
$old_start = $datas['START'];
$old_return = $datas['RETURN'];
}
希望这会清除您的逻辑,添加您想要的数组值,我将您的数组从2修改为3以显示差异。这将比较n与n+1并显示结果
希望这会清除您的逻辑,添加您想要的数组值,我将您的数组从2修改为3以显示差异。这将比较n与n+1并显示结果
$old\u start
不会在循环内初始化-这只会抛出一个未定义的变量错误。@AmalMurali如果您能看到编辑历史记录,您将看到我在您发布评论之前编辑了它。谢谢你的建设性否决票。@A代码是否在else路径中?你只需要检查一下,例如$old\u start=''
@syck:显然是的,我取消了我的否决票,并将其改为赞成票。@AjithN编辑了代码,这样它就不会在第一个循环中触发。$old\u start
不会在循环中初始化-这只会抛出一个未定义的变量错误。@AmalMurali如果你能看到编辑历史,你会看到我在你发表评论之前编辑了它。谢谢你的建设性否决票。@A代码是否在else路径中?你只需要检查一下,例如$old\u start=''
@syck:显然是的,我取消了我的下一票,将其改为上一票。@Ajith编辑了代码,这样它就不会在第一个循环中触发。$data的输出就是我给出的数组。您总是只有两个数组可以比较吗?它不是两个数组,它只有一个数组具有多个值Hanks brother@AmalMurali@AjithN:没问题;今后,请务必将您的问题编排整齐。提示:您可以添加标题('Content-Type:text/plain;charset=utf8')
在脚本的最顶端,以查看实际生成的输出。$data的输出是我提供的数组您是否总是只有两个数组可供比较?它不是两个数组,它只有一个数组具有多个值Hanks brother@AmalMurali@AjithN:没问题;今后,请务必将您的问题编排整齐。提示:您可以添加标题('Content-Type:text/plain;charset=utf8')代码>显示在脚本的最顶端,以查看实际生成的输出。对于0键数组,这将变为false。不进行测试。对于0键数组,这将变为false。这是不需要测试的。