我将尝试创建一个函数,可以完成以下操作: 有一个数组,其形式为
$array = [
0 => 1,
1 => 2,
2 => 4,
];
我希望你能够帮我创建一个长度为5的字符串,其中包含当前数组的值以正确的顺序排列,例如:12040。
或者说:
$array = [
0 => 3,
1 => 5,
];
将变成:00305
本质上,将字符串中不存在于数组中的位置替换为0。
谢谢!
您可能正在寻找类似下面这样的内容:
<?php
$input = [1,2,5,6,8];
$string = '';
for ($i=1; $i<=max($input); $i++) {
$string .= in_array($i, $input) ? $i : '0';
}
var_dump($string);
string(8) "12005608"
我不确定我是否完全理解你的意思,但我认为你正在寻找这个:
$finalString = "";
for ($i = 0, $j = count($myArray); $i < $j; $i++)
{
if (isset($myArray[$i]))
{
$finalString .= $myArray[$i];
}
else
{
$finalString .= "0";
}
}
编辑:我意识到您可能正在寻找这个:
$myArray = [3, 5];
$finalString = "";
for ($i = 1; $i <= 5; $i++)
{
if (in_array($i, $myArray))
{
$finalString .= $i;
}
else
{
$finalString .= "0";
}
}
执行后,$finalString
中包含 00305
。如果您想继续增加空格数量,请在循环中更改数字 5。
[2]
,您将得到02
,而不是02000
。 - Byson
[1,2,4]
变成1204
,[3,5]
变成00305
的规律是什么?我看不出来它们背后的模式。 - Rizier1230
代表该值不存在 - 即[1,2,4]
丢失了3,5
,所以他们想要做成[1,2,0,4,0]
或者12040
,以及[0,0,3,0,5]
/00305
因为1,2,4
没有被设置。 - Sean