我有多维数组,我在其中使用嵌套的foreach循环来循环查找某人的名字和姓氏。一旦我找到了这个值,我就需要注意这些值的哪一行。有人对我这样做有什么建议吗?
foreach($finalArray as $value){
foreach($value as $key => $value2){
if ($value2 == $firstname){
$firstnameFound = "true";
if($value2 == $lastname)
$lastnameFound = "true";
}
$colNumber = $key;
}
}
答案 0 :(得分:1)
使用您的代码作为基础,您可以使用以下内容:
foreach($finalArray as $key0 => $value){
foreach($value as $key => $value2){
if ($value2 == $firstname){
$col1 = $key0;
$col2 = $key;
}
}
}
eval.in处的工作代码。
答案 1 :(得分:1)
您提供的代码有点令人困惑,因为您将$firstname
和$lastname
与$value2
进行了比较(暗示它们必须相同才能使搜索成功) 。您还将列存储在if语句之外的$colnumber
中,这意味着它最终将被分配给for循环中的最后一列。
使用=>
符号非常重要,因为这样您就可以访问要迭代的数组的索引(行或列)。这是一个样板示例,您可以根据自己的需要进行操作,假设table
是一个二维字符串数组,并且您希望表的行和列具有字符串“John”。
$foundRow = $foundCol = NULL;
foreach ($table as $rowIndex => $row) {
foreach ($row as $colIndex => $name) {
if ($name == "John") {
$foundRow = $rowIndex;
$foundCol = $colIndex;
}
}
}
注意我们如何在if语句中分配$foundRow
和$foundCol
。找到“John”的行和col现在分别存储在$foundRow
和$foundCol
中,除非“John”不在2D数组中,在这种情况下两个变量都是NULL
。
答案 2 :(得分:0)
使用array_keys()
获取数组的密钥名称:
foreach(array_keys($finalArray) as $key){
$column = $key; //key name
$value = $finalArray[$column]; //value of the key
...//you algo here.
}
你能否至少完成你的所有代码,但在提问时要说清楚。我不知道你的变量来自哪里。