我有这个数组:
[ID] => 荒川之下流三十景-その二十三「赤羽之景」__35.79_139.72
[Email] =>
[InBuildingAddress] =>
[Price] =>
[Street] =>
[Title] => 荒川之下流三十景 その二十三「赤羽之景」
[Website] =>
[Zip] =>
[Rating Star] => 0
[Rating Weight] => 0
[Latitude] => 35.7865334803033
[Longitude] => 139.716800710514
[Building] =>
[City] => Unknown_Japan
[OpeningHour] =>
[TimeStamp] => 0000-00-00 00:00:00
[CountViews] => 0
然后我做这样的事情:
$output[$info['ID']] = $info; //mess up here
$tes = $info['ID']['Title'];
猜猜是什么:它搞砸了。它可能搞乱的原因是因为$ info ['ID']不是ascii。然而,我使用它作为$ output [$ info ['ID']]的关键。
基本上即使PHP中的数组内容可以是日语。这是真的吗?
怎么了?我得到的错误是:
调试警告:/sdfdsfdf/api/test2.php第36行 - 无法找到元素?????????????????????????????????????????????????????? 调试警告:/sdfdsfdf/api/test2.php第36行 - main()[function.main]:依赖系统的时区设置是不安全的。您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们选择“亚洲/克拉斯诺亚尔斯克”代替“7.0 /无夏令时”
这么多问号。
为什么会这样? PHP内部真正发生了什么?我在哪里可以学到更多这样的东西?最重要的是,处理这种情况的最佳方法是什么?我应该告诉PHP内部总是使用UTF-8吗? PHP数组本身不具有非ASCII值吗?
答案 0 :(得分:3)
运行此:
$utf8str = '荒川之下流三十景-その二十三「赤羽之景」__35.79_139.72';
$arr = Array(
$utf8str => $utf8str,
);
var_dump($arr);
$arr[$utf8str] = "test";
var_dump($arr);
我明白了:
array
'荒川之下流三十景-その二十三「赤羽之景」__35.79_139.72' => string '荒川之下流三十景-その二十三「赤羽之景」__35.79_139.72' (length=72)
array
'荒川之下流三十景-その二十三「赤羽之景」__35.79_139.72' => string 'test' (length=4)
所以 PHP可以将utf8 charachers作为数组键处理 ...
关于date
相关警告,请先使用google,提问问题并等待人们一遍又一遍地提出相同问题的答案会更快(假设这是你投票的原因)< / p>