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

在不使用循环的情况下将字符串分解为关联数组?

司马振国
2023-03-14
问题内容

我有一个类似的字符串1-350,9-390.99,...,我需要将其变成一个关联数组,如下所示:

 Array
    (
        [1] => 350
        [9] => 390.99
        ...........
    ).

是否可以仅使用数组函数而不执行循环?


问题答案:

这是一种使用array_walk而不进行for循环的方法

$array = explode(',', $string);
$new_array = array();
array_walk($array,'walk', $new_array);

function walk($val, $key, &$new_array){
    $nums = explode('-',$val);
    $new_array[$nums[0]] = $nums[1];
}


 类似资料:
  • 问题内容: 我有一个字符串,是这样的:。 我想将其转换为列表。我知道我可以使用eval(string)来获取列表,但是eval令我感到恐惧,因为它可能会造成灾难(并且因为我可以获取非列表作为有效输出)。还有另一种更安全的方式将此字符串转换为列表吗?我知道这是一个列表,所有不是列表的数据都是无效数据(应该检查和/或抛出错误)。 问题答案: 如果您坚持要这样做,可以使用ast.literal_eval

  • 问题内容: 我想在不使用split的情况下拆分字符串。任何人都可以解决我遇到的问题,但是我找不到确切的逻辑。 问题答案: 我将假定这是家庭作业,因此我仅给出一些片段作为提示: 查找给定子串的所有出现的索引 这是一个与参数一起使用以查找较大字符串中所有出现的子字符串的示例: 字符串API链接 从指定的索引开始,返回指定子字符串首次出现在该字符串中的索引。如果不存在这种情况,则返回-1。 相关问题 在

  • 为什么在开关情况下不能将枚举值用作字符串?(或者这有什么问题:)

  • 问题内容: 我需要在检查的同时将以下更改为- ,以改善圈复杂度。 但是我不确定我将获得什么价值。 问题答案: Java(版本7之前的版本)在switch / case中不支持String。但是您可以通过使用枚举来达到预期的结果。

  • a 应该在内部使用类似于: 如何一个

  • 对于以下字符串,大小输出不正确。为什么会这样?我该如何解决? 我试着逐字符遍历str,这样我就可以把它读入向量