php数组_walk查找值的键
首先,让我开始说我对php是全新的,并开始学习它。我对实现结果的其他方法和任何批评持开放态度 我有一张有国家代码清单的表格。列表的格式是,国家代码是值,国家是文本php数组_walk查找值的键,php,Php,首先,让我开始说我对php是全新的,并开始学习它。我对实现结果的其他方法和任何批评持开放态度 我有一张有国家代码清单的表格。列表的格式是,国家代码是值,国家是文本 <option value="AF">Afghanistan</option> 我将国家代码作为键放入数组,将名称作为值放入数组 $countryArr = array('AF' => 'Afghanistan'); 我创建了一个变量来保存国家的名称 $country = ''; 我创建了一个函数来
<option value="AF">Afghanistan</option>
我将国家代码作为键放入数组,将名称作为值放入数组
$countryArr = array('AF' => 'Afghanistan');
我创建了一个变量来保存国家的名称
$country = '';
我创建了一个函数来查找值并将密钥写入$country
function countryName($value, $key) {
if ($countryCode == $value) {
$country = $key;
} else {
$country = 'not found';
}
}
我使用上面的函数遍历数组
array_walk($countryArr, 'countryName');
我期望的输出是国家名称或“未找到”,但我得到的是一个空字符串
我现在在操场上工作,但不是生活,大概是因为htmlspecialchars
——但我不知道如何处理这个问题。我使用htmlspecialchars
作为一种逃逸字符串的方法,绕过常见的XSS攻击
在操场上工作
<?php
$countryCode = 'AF';
$countryArr = array('AF' => 'Afghanistan');
$country = '';
function countryName($value, $key) {
global $countryCode, $country;
if ($countryCode == $key) {
$country = $value;
} else {
$country = 'not found';
}
}
array_walk($countryArr, 'countryName');
echo('Country:<br>');
echo(" $country");
?>
如果需要从value返回key,则不需要为此创建函数或使用array\u walk。 相反,此数组搜索也将起作用
$key = array_search ('country_name', $countryArr);
若需要从value返回key,则不需要为此创建函数或使用array\u walk。 相反,此数组搜索也将起作用
$key = array_search ('country_name', $countryArr);
根据注释,您只需查找给定键的数组值:
$countryCode = 'AF';
$countryArr = array('AF' => 'Afghanistan');
$countryName = $countryArr[$countryCode] ?? null;
??null
part(需要PHP7)确保$countryName
将为null,即使国家代码在数组中不作为键存在
请注意,我建议您使用非常基本的PHP。根据评论,您只需查找给定键的数组值:
$countryCode = 'AF';
$countryArr = array('AF' => 'Afghanistan');
$countryName = $countryArr[$countryCode] ?? null;
??null
part(需要PHP7)确保$countryName
将为null,即使国家代码在数组中不作为键存在
请注意,我建议您使用非常基本的PHP。
您的countryName
函数无权访问$countryCode
变量。此外,在同一函数中为$country
赋值也没有任何作用。你能尽可能简单地重新表述你想做的事情吗?您想传递一个国家名称并检索相应的密钥吗?我想我不理解php中的作用域。。。我希望$countryCode是一个全局变量,因为它是在任何函数之外的文件范围中定义的。我想php的作用域是不同的,我需要做更多的研究。我要说的是“AF”,但我想要的是“Afghanistan”,是的,大多数语言都是这样。在PHP中,您必须通过$GLOBALS['countryCode']
访问它,或者在函数开头使用global$countryCode将其声明为全局代码>。谢谢,它是这样工作的,但我总是得到“找不到”我在函数中反转了键/值。现在,它在一个带有硬编码值的游乐场中工作,但不是活动的-可能是因为htmlspecialchars
,但我不确定如何处理countryName
函数无法访问$countryCode
变量。此外,在同一函数中为$country
赋值也没有任何作用。你能尽可能简单地重新表述你想做的事情吗?您想传递一个国家名称并检索相应的密钥吗?我想我不理解php中的作用域。。。我希望$countryCode是一个全局变量,因为它是在任何函数之外的文件范围中定义的。我想php的作用域是不同的,我需要做更多的研究。我要说的是“AF”,但我想要的是“Afghanistan”,是的,大多数语言都是这样。在PHP中,您必须通过$GLOBALS['countryCode']
访问它,或者在函数开头使用global$countryCode将其声明为全局代码>。谢谢,它是这样工作的,但我总是得到“找不到”我在函数中反转了键/值。现在它在一个带有硬编码值的操场上工作,但不是活动的-可能是因为htmlspecialchars
但我不知道如何处理,为什么要给它传递一个键?您要从键中获取值,还是从值中获取键?如果是前者,那么它只是一个简单的数组访问:$countryArr[$countryCode]
..@Jeto在操场和现场工作。如果你想给我一个答案,我想给你一个信任up@froggomad我刚做了。你为什么要把钥匙给它?您要从键中获取值,还是从值中获取键?如果是前者,那么它只是一个简单的数组访问:$countryArr[$countryCode]
..@Jeto在操场和现场工作。如果你想给我一个答案,我想给你一个信任up@froggomad就这么做了。正如我所说的,我现在只是随机应变。我成功地编写了一个脚本,在不了解数组的情况下将表单处理成SQL db。生命不必按顺序从A点到Z点。我会按我的方式到达那里。非常感谢你的帮助正如我所说的,我现在只是随机应变。我成功地编写了一个脚本,在不了解数组的情况下将表单处理成SQL db。生命不必按顺序从A点到Z点。我会按我的方式到达那里。非常感谢你的帮助