PHP 数组区分大小写的问题.

Tuesday 发布于 2013/08/02 09:39
阅读 1K+
收藏 1
PHP

$a = array();
$a['LB'] = 1000;  // 数组有20万条. 全部都是大小写混齐.

$key = 'Lb';   // 这是用户post上来的, 大小写都有.

# 我怎么才能够通过用户post上来的值对应到数组的值?  不区分大小写.  我可以转变$key的值全部为小写, 可数组量太大, 有好方法全部转小写么?
echo $a[$key];


另外.


echo DEFINE_STR;    //php 5.5 开始不报错了? 我记得以前未定义的常量, 使用会报个错的.

加载中
0
CeeFee
CeeFee
array_change_key_case(array, CASE_UPPER);
帖子列表
帖子列表
这儿高手真多啊
Tuesday
Tuesday
这个函数好...
0
solu
solu
$arr = array(
	'Ab' => '1',
	'cD' => '2',
	'Ef' => '3',
	'gH' => '4',
	'Lb' => '5',
);
$keys = array_map('strtolower', array_keys($arr));
$arr = array_combine($keys, $arr);
$key = 'Lb';   // 这是用户post上来的, 大小写都有.
var_dump($arr[strtolower($key)]);
大数组我就没测试了!
solu
solu
回复 @Tuesday : 20W测试了一下确实慢差不多一倍,看来以后没事也要多翻翻手册
Tuesday
Tuesday
这不是最佳的方法吧, 20万条数组, 你这等于循环了20万次.
0
leo108
leo108

echo DEFINE_STR;

这个一直是抛出notice吧,会把DEFINE_STR当成"DEFINE_STR"这个字符串

0
Tuesday
Tuesday

引用来自“leo108”的答案

echo DEFINE_STR;

这个一直是抛出notice吧,会把DEFINE_STR当成"DEFINE_STR"这个字符串

Array
(
    [type] => 8
    [message] => Use of undefined constant DEFINE_STR - assumed 'DEFINE_STR'
    [file] => C:\Users\Tuesday\AppData\Local\Temp\~无标题 3
    [line] => 8
)

这是我获取到的错误日志, 我记得以前是warning的.

0
leo108
leo108

引用来自“Tuesday”的答案

引用来自“leo108”的答案

echo DEFINE_STR;

这个一直是抛出notice吧,会把DEFINE_STR当成"DEFINE_STR"这个字符串

Array
(
    [type] => 8
    [message] => Use of undefined constant DEFINE_STR - assumed 'DEFINE_STR'
    [file] => C:\Users\Tuesday\AppData\Local\Temp\~无标题 3
    [line] => 8
)

这是我获取到的错误日志, 我记得以前是warning的.

http://php.net/manual/en/language.constants.syntax.php

没有changelog

0
Tuesday
Tuesday

引用来自“leo108”的答案

引用来自“Tuesday”的答案

引用来自“leo108”的答案

echo DEFINE_STR;

这个一直是抛出notice吧,会把DEFINE_STR当成"DEFINE_STR"这个字符串

Array
(
    [type] => 8
    [message] => Use of undefined constant DEFINE_STR - assumed 'DEFINE_STR'
    [file] => C:\Users\Tuesday\AppData\Local\Temp\~无标题 3
    [line] => 8
)

这是我获取到的错误日志, 我记得以前是warning的.

http://php.net/manual/en/language.constants.syntax.php

没有changelog

难道我记错了?

返回顶部
顶部