1 , "Part-6ren">
gpt4 book ai didi

PHP : Array key containing special character not found

转载 作者:行者123 更新时间:2023-12-04 05:27:16 26 4
gpt4 key购买 nike

我正在尝试使用带有键的数组作为查找表将字符串转换为数字。

这是数组:

$q2_10_lt = array("Full-time worker" => 1
, "Part-time worker" => 2
, "Unemployed, would like to work" => 3
, "Unable to work (chronically ill/mentally handicapped/physically handicapped)" => 4
, "Pensioner/retired" => 5
, "Housewife/husband" => 6
, "Student at university of college (post-matric)" => 7
, "High school learner" => 8
, "Primary school learner" => 9
, "Child attending pre-school/nursery school/crèche/day-mother" => 10
, "Child staying at home" => 11
, "Other" => 12);

有问题的关键是“ child 上学前类/托儿所/托儿所/走读妈妈”。使用以下代码时找不到此 key :
$person_tempArr[] = $q2_10_lt[$row["q2_10"]] != null ? $q2_10_lt[$row["q2_10"]] : "12";
$person_tempArr[] = $q2_10_lt[$row["q2_10"]] == null ? $row["q2_10"] : "";
$row["q2_10"] value 只是取自 MySQL DB 的不同字符串。

我应该从第一行得到数字 10,但我得到的是 12 和完整的字符串“ child 参加学前类/托儿所/托儿所/走读母亲”。

这一定与特殊字符è有关,但我一直无法解决。请任何帮助。

编辑 1

按照建议进行十六进制转储后,我得到以下结果

从 SQL 数据库:
43 68 69 6c 64 20 61 74 74 65 6e 64 69 6e 67 20 70 72 65 2d 73 63 68 6f 6f 6c 2f 6e 75 72 73 65 72 79 20 73 63 68 6f 6f 6c 2f 63 72 e8 63 68 65 2f 64 61 79 2d 6d 6f 74 68 65 72

从 php 中的字符串:
43 68 69 6c 64 20 61 74 74 65 6e 64 69 6e 67 20 70 72 65 2d 73 63 68 6f 6f 6c 2f 6e 75 72 73 65 72 79 20 73 63 68 6f 6f 6c 2f 63 72 c3 a8 63 68 65 2f 64 61 79 2d 6d 6f 74 68 65 72

区别在于数据库中的“E8”与“C3A8”或“è”与来自php字符串的“è”。

那么我怎样才能确保 php 字符串保持“è”呢?

最佳答案

您从数据库层获得的字符串与您用作键的字符串不同。要修复它,请每次使用相同的字符串。

这里的相同意味着,字符串是逐字节相同的。做一个 hexdump of the string你从数据库中得到。

然后输入二进制字符串作为键(或至少是特殊字母)。这将使您的代码更加健壮,因为无论您使用哪种编码保存 PHP 文件,它都能正常工作。

编辑:当您与数据库进行比较时, key 需要与数据库中的二进制序列相关联:

        , "Child attending pre-school/nursery school/cr\xE8che/day-mother" => 10
^^^^

使用十六进制表示法来表示您无法使用 UTF-8 编码的 PHP 文件“输入”的字节。数据库使用一些 ISO-8859-1 或类似的编码。

如您所见,它只是 \x然后是十六进制代码 E8 .它适用于 PHP 中的双引号字符串。

关于PHP : Array key containing special character not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13050767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com