$array = array(
array(
'key1',
'text 1 text 1 text 1'
),
array(
'key2',
'text 2 text 2 text 2'
),
array(
'key3',
'text 3 text 3 text 3'
)
);
对不起标题,如果没有例子,很难解释。
用户想要阅读一些文字。例如,key2
的文本。因此,当输入为key2
时,我想显示文本:text 2 text 2 text 2
。
但是如何使用PHP选择该文本?
答案 0 :(得分:4)
如果可以,我认为使用密钥作为数组中的实际密钥:
$array = array("key1" => "text 1 text 1",
"key2" => "text 2 text 2",
"key3" => "text 3 text 3");
//now use this:
echo $array["key2"];
如果无法操作数组,可以使用循环创建数组,如上所述:
$newArray = array();
foreach($array as $sub){
$newArray[$sub[0]] = $sub[1];
}
仅当您确定键始终是第一个元素而文本是第二个元素时才有效。
答案 1 :(得分:3)
因为它来自您的数据库(根据您的评论),它取决于您需要执行它的频率。
有两种选择,要么重新格式化整个数组,这需要一些时间,但要使后续查找更快,或者只是遍历数组以找到密钥。如果您需要进行多次查找,前一种解决方案是最好的,后者最适合单次查找。
因此,对于单个查找,您可以执行
function find_key($arr, $needle)
{
foreach ($arr as $el)
{
list($key,$value) = $el;
if ($needle == $key)
return $value;
}
return false;
}
print find_key($array, 'key2'); // returns "text 2 text 2 text 2".
答案 2 :(得分:1)
如果您需要动态获取所需密钥,则需要迭代数组并匹配所需的“密钥”:
$wanted = "key2";
$text = NULL;
foreach ( $array as $V ){
if ( $V[0] == $wanted ){
$text = $V[1];
break;
}
}
正如@Lex建议重构目标数组真的好主意......