0
我试图使用if语句来比较两个数组值。我没有比较索引。如果这些值彼此匹配,那么我想从多维数组中打印出一个值。我试图用解决方案:使用条件来匹配多维数组中的值
然而,这些例子并不十分回答我的问题。我不需要生成一个新的数组,我想遍历这些值,如果我有一个匹配项,则在屏幕上回显一个值。
请参阅下面我的代码,这个问题是下面的“///////////////////////////”标记:
<?php
$str ="";
// events array
$events = array(array("PokeMon", "Hall D" , "1:00 AM"),
array("Sonic the Hedgehog", "WorkShop 1" , "11:00 AM"),
array("Tasbura", "Video 3" , "2:00 PM"),
array("Sailor Moon ", "Panel 4" , "6:00 PM")
);
// location array
$row=array(
"Arena","Hall D","Video 1","Video 2","Video 3","Video 4","Video 5","Video 6","HD Theater",
"Panel 1","Panel 2","Panel 3","Panel 4","WorkShop 1","WorkShop 2","WorkShop 3","WorkShop 4",
"Autograph 1","Autograph 2"
);
// event start time array
$col=array(
"","9:00 AM","10:00 AM","11:00 AM","1:00 PM","2:00 PM","3:00 PM","4:00 PM","5:00 PM","6:00 PM",
"7:00 PM","8:00 PM","9:00 PM","10:00 PM","11:00 PM","12:00 AM","1:00 AM","2:00 AM",
);
// length of location and start time arrays
$rowLength=count($row);
$colLength=count($col);
$str .= "<table><tr><td bgcolor='green'><table border='1' bordercolor='black'><tr>";
for($i = 0; $i < $colLength; $i++){
$str .= "<td width='100' height='25' bgcolor='yellow'>";
$str .= $col[$i];
$str .= "</td>";
}
for ($j = 0; $j < $rowLength; $j++){
$str .= "<tr><td width='100' height='25' bgcolor='pink'>";
$str .= $row[$j];
$str .= "</td> ";
for ($k = 0; $k < $colLength-1; $k++){
$str .= "<td width='100' height='25' bgcolor=' #70DBDB'>";
//////////////////////Here is where I need to compare the arrays:
if(($row[$j]==$events[$j][1]) && ($col[$k+1]==$events[$k+1][2])){
$str .= $events [$j][0];
///////////////////////////////////////////////////////////////////
}else{
$str .= " ";
}
$str .= "</td>";
}
$str .= " </tr>";
}
echo $str ."</table></td></tr></table>";
?>
这是什么,我试图创建一个例子: http://leobee.com/android/push/so/stdt2.php
下面是来自例子代码:
<?php
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL^E_NOTICE);
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
// Report all PHP errors
error_reporting(-1);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
$str ="";
$row=array(
'Arena',"Hall D","Video 1","Video 2","Video 3","Video 4","Video 5","Video 6","HD Theater",
"Panel 1","Panel 2","Panel 3","Panel 4","WorkShop 1","WorkShop 2","WorkShop 3","WorkShop 4",
"Autograph 1","Autograph 2"
);
$col=array(
"","9:00 AM","10:00 AM","11:00 AM","1:00 PM","2:00 PM","3:00 PM","4:00 PM","5:00 PM","6:00 PM",
"7:00 PM","8:00 PM","9:00 PM","10:00 PM","11:00 PM","12:00 AM","1:00 AM","2:00 AM",
);
$rowLength=count($row);
$colLength=count($col);
//echo $rowLength." ".$colLength."<br>";
$str .= "<table><tr><td bgcolor='green'><table border='1' bordercolor='black'><tr>";
for($i = 0; $i < $colLength; $i++){
$str .= "<td width='100' height='25' bgcolor='yellow'>";
$str .= $col[$i];
$str .= "</td>";
}
for ($j = 0; $j < $rowLength; $j++){
$str .= "<tr><td width='100' height='25' bgcolor='pink'>";
$str .= $row[$j];
$str .= "</td> ";
for ($k = 0; $k < $colLength-1; $k++){
$str .= "<td width='100' height='25' bgcolor=' #70DBDB'>";
////////////////////////////////////////////////////////////////////////////
if(($row[$j]=="Arena") && ($col[$k+1]=="9:00 AM")){
$str .= "Poketmon";
}else{
$str .= "";
}
///////////////////////////////////////////////////////////////////////////
$str .= "</td>";
}
$str .= " </tr>";
}
echo $str ."</table></td></tr></table>";
?>
这是惊人的!我没有考虑平面阵列。我不知道我可以搜索比较这样的两个数组。谢谢。 – Leoa 2012-07-06 14:43:27
我有点困惑这条线'$ events_flat [$ event [0]] = $ event [1]。 $ event [2];'$ event [0]的值被重新赋值(concateated)为$ event [1]的值。 $ event [2]你如何能够在代码中将值返回:'$ event = array_search($ location。$ time,$ events_flat);'?从文档array_search产生一个索引,这不是值。对不起,我对此有点困惑。 – Leoa 2012-07-06 15:04:09