当前位置: 首页 > 面试题库 >

如何强制PHP将字符串用作数组键?

孙乐逸
2023-03-14
问题内容

我遇到了一个使用ID来命名类型数组的旧应用,例如…

array(1) {
  [280]=>
  string(3) "abc"
}

现在,我需要对它们进行重新排序,并且a var_dump()会使得在键为整数的情况下似乎不会发生这种情况。

如果我a向每个索引添加,var_dump()将在键周围显示双引号,我想显示它现在是一个字符串…

array(1) {
  ["280a"]=>
  string(3) "abc"
}

这使我可以轻松地对它们进行重新排序,而无需触及更多代码

这是 行不通的

$newArray = array();
foreach($array as $key => $value) {
   $newArray[(string) $key] = $value;
}

A var_dump()仍将它们显示为整数数组索引。

有没有一种方法可以将键强制为字符串,这样我就可以在不破坏数组的情况下对其重新排序?


问题答案:

编辑

我假设如果它们是整数,则不能在不更改键的情况下对其重新排序(在此示例中很重要)。但是,如果它们是字符串,我可以对其重新排序,因为不应将索引解释为具有任何特殊含义。无论如何,请查看我的问题更新以了解我的操作方式(我走了另一条路)。

实际上,它们不必按数字顺序…

array(208=>'a', 0=> 'b', 99=>'c');

如果您手动分配它们,则完全有效。尽管我同意整数键可能会被某人误解为具有顺序含义,但是您会认为如果它们以非数字顺序显示,则很明显它们不是。话虽如此,我认为既然您有在更新时更改代码的余地,那是更好的方法。

可能不是最有效的方法,但很容易做到:

$keys = array_keys($data);

$values = array_values($data);
$stringKeys = array_map('strval', $keys);

$data = array_combine($stringKeys, $values);

//sort your data


 类似资料:
  • 问题内容: 如何在php中转换数组中的字符串 应该是这样的 的 将字符串拆分为3个字符的单词,但我想在数组中的空格后转换字符串。 问题答案:

  • 我需要以十六进制表示形式将字符串转换为字节数组。例如: 值:06000002我需要的是: 如何做到这一点?

  • 我想做一个函数,将字符串添加到字符串中 我这样尝试过: 主要功能 在addLine(字符串文本,字符串行) 我知道=在java中的String make new实例之间的操作。但是,上层代码不起作用。 我如何制作一个向字符串添加字符串的函数?

  • 问题内容: 我正在尝试使用示例php代码模拟此错误,但尚未成功。任何帮助都会很棒。 “不能将字符串偏移量用作数组” 问题答案: 对于PHP4 …这重现了错误: 对于PHP5 …这重现了错误: (实际上来自bugs.php.net) 编辑, 因此,即使是字符串,为什么错误也不会出现在第一个if条件中。 因为PHP是一种非常宽容的编程语言,所以我猜。我将用代码说明我的想法:

  • 问题内容: 我有一个PHP脚本,可以从数据库中检索名称(字符串)。我想使用$ .ajax()将此数组传递给Javascript。我不明白如何在PHP中对数组进行编码,然后在Javascript中对其进行解码。有人可以为此提供示例代码吗?非常感谢 !! 问题答案: HTML档案:

  • 问题内容: 我正在使用jQuery.post()调用Coldfusion组件(cfc)。我需要返回的数字的整数或字符串表示形式,以用于URL。 相反,我得到的是一个小数: 需要更新以下HTML: 从概念上讲,我想有多个答案: 1)我可以使用jQuery来获取小数点左边的数字。 2)我可以强制Coldfusion将数字作为字符串发送。 3)我可以生成整个链接服务器端,而只需替换整个链接标签HTML(