首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在多维数组中连接两个字符串?

如何在多维数组中连接两个字符串?
EN

Stack Overflow用户
提问于 2020-10-10 19:44:15
回答 3查看 152关注 0票数 0

我有一个多维数组。我希望为两个数组值单独连接两个字符串,并且两个字符串不应该为单个值连接。我希望CM和PM连接2次,在数组中的任何位置。我尝试过循环数组和生成array_rand,但我只生成了一次。任何帮助都是非常感谢的。下面是正在取得的成就的一个例子。

正在努力实现的目标

  • 连接一组数组中的" PM“和" CM”字符串,相同的值不能是CM和PM
  • 每个数组都应该有PM和CM连接的
  • 1 "Name“值应该有最小的1CM和PM,以及最大的2CM和PM

例如:我有下面的多维数组。

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [0] => Name-A
            [1] => Name-B
            [2] => Name-C
            [3] => Name-4
            [4] => Name-5
        )

    [1] => Array
        (
            [0] => Name-A
            [1] => Name-B
            [2] => Name-C
            [3] => Name-4
            [4] => Name-5
        )

    [2] => Array
        (
            [0] => Name-A
            [1] => Name-B
            [2] => Name-C
            [3] => Name-4
            [4] => Name-5
        )

    [3] => Array
        (
            [0] => Name-A
            [1] => Name-B
            [2] => Name-C
            [3] => Name-4
            [4] => Name-5
        )

    [4] => Array
        (
            [0] => Name-A
            [1] => Name-B
            [2] => Name-C
            [3] => Name-4
            [4] => Name-5
        )
)

级联后

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [0] => Name-A
            [1] => Name-B
            [2] => Name-C["PM"]
            [3] => Name-4["CM"]
            [4] => Name-5
        )

    [1] => Array
        (
            [0] => Name-A
            [1] => Name-B["PM"]
            [2] => Name-C
            [3] => Name-4["CM"]
            [4] => Name-5
        )

    [2] => Array
        (
            [0] => Name-A["PM"]
            [1] => Name-B
            [2] => Name-C
            [3] => Name-4
            [4] => Name-5["CM"]
        )

    [3] => Array
        (
            [0] => Name-A["PM"]
            [1] => Name-B["CM"]
            [2] => Name-C
            [3] => Name-4
            [4] => Name-5
        )

    [4] => Array
        (
            [0] => Name-A
            [1] => Name-B
            [2] => Name-C["CM"]
            [3] => Name-4
            [4] => Name-5["PM"]
        )
)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-11 08:18:08

抱歉,一开始我不明白。给定$your_array:

代码语言:javascript
复制
// Generate an array where the names are the key, and assign a zero value to PM (0) and CM (1) in a sub array
$ar = array_fill_keys($your_array[0], array (0 => 0, 1 => 0));

//$array the sub_value, $add the case PM ou CM, $exclusion is the key used the first time
function rand_in_array($array, $add, $ar, $exclusion)
{   
    // Select a random key
    $arr_key = array_rand($array, 1);

    
    if($ar[$array[$arr_key]][$add] < 2 && ($arr_key !=  $exclusion))
    {
        return $arr_key;
    } 
    return rand_in_array($array, $add, $ar, $exclusion);    
}

for($i=0; $i<count($your_array);$i++) 
{
    
    $arr_key_pm = rand_in_array($your_array[$i], 0, $ar, 99);
    $ar[$your_array[$i][$arr_key_pm]][0]++;     
    $arr_key_cm = rand_in_array($your_array[$i], 1, $ar, $arr_key_pm);
    $ar[$your_array[$i][$arr_key_cm]][1]++;     

    $your_array[$i][$arr_key_pm] .= "PM";
    $your_array[$i][$arr_key_cm] .= "CM";
}

它是丑陋的,但它起作用了:)某个地方应该有一个能够使人更加审美的人。

票数 2
EN

Stack Overflow用户

发布于 2020-10-10 21:17:30

代码语言:javascript
复制
for($i=0; $i<count($your_array);$i++) 
{
    $arr_keys = array_rand($your_array[$i], 2);
    $your_array[$i][$arr_keys[0]] .= "PM";
    $your_array[$i][$arr_keys[1]] .= "CM";
}

应该做这件事。

票数 0
EN

Stack Overflow用户

发布于 2020-10-13 19:27:44

假设您的内部数组索引是从零开始的。因此,在0到您的( inner_array_size - 1)之间生成随机索引。然后通过循环分配数组的引用变量中的值。

代码语言:javascript
复制
foreach ($arr as &$value) {
    $randomIndex = array_rand(range(0, (count($value) -1) ), 2);
    $value[$randomIndex[0]] .= ' ["CM"]'; 
    $value[$randomIndex[1]] .= ' ["PM"]'; 
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64297557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档