我有这样的字符串
234,153,25,25,85,36,40,40,188,155,60,60
我想将其插入数组,但是像这样:
[234,153,25,25],[85,36,40,40],[188,155,60,60]
我想在字符串上执行一个for循环,但是如何每4个逗号呢?
编辑: 我现在需要计算数组的长度 我尝试使用“ count ”和“ sizeof ”功能,但它们不能正确计数数组。可能是什么问题?
例如,如果数组为空,则sizeof和count返回我1
答案 0 :(得分:5)
1。首先使用,
的字符串explode()
2。然后,您需要使用array_chunk()来获得所需的数组
<?php
$string = '234,153,25,25,85,36,40,40,188,155,60,60';
$exploded_array = explode(',',$string);
$final_array = array_chunk(array_filter($exploded_array) ,4);
print_r($final_array);
编辑:- (如果为空字符串,则应用检查)
<?php
$string = '';
if(strlen(trim(trim($string,',')))!== 0){
$exploded_array = explode(',',$string);
$final_array = array_chunk(array_filter($exploded_array) ,4);
print_r($final_array);
echo count($final_array);
echo sizeof($final_array);
}else{
echo "string is empty";
}
参考:-
答案 1 :(得分:3)
explode()
将字符串转换为数组array_chunk()
将数组切成小块/数组尝试这种方式:
$val = "234,153,25,25,85,36,40,40,188,155,60,60";
$strToArr = explode(",", $val);
$result = array_chunk($strToArr, 4);
答案 2 :(得分:1)
这是摘要,
<?php
$temp = explode(",", "234,153,25,25,85,36,40,40,188,155,60,60");
$j = $i = 0;
$result = [];
foreach ($temp as $piece) {
if (($i++ % 4) == 0) {
$j++;
}
$result[$j][] = $piece;
}
print_r($result);
这里在工作code。
答案 3 :(得分:1)
$a = '234,153,25,25,85,36,40,40,188,155,60,60';
$b = explode(',',$a);
$c = array_chunk($b,4);
print_r($c);
答案 4 :(得分:1)
首先,您应该基于,
第二,您应该使用array_chunk PHP Manual 函数
您可以看到输出here
$a='234,153,25,25,85,36,40,40,188,155,60,60';
$array=explode(",",$a);
$b=array_chunk($array, 4);
print_r($b);
答案 5 :(得分:0)
这是一种快速且肮脏的解决方案,但易于理解,恕我直言。
<?php
$var = '234,153,25,25,85,36,40,40,188,155,60,60,20';
// Split array by ,
$ones = explode(',', $var);
$finalArray = [];
$i = 0;
// Iterate every 4
while ($i < count($ones)) {
$j = 0;
$a = [];
// Iterate every one of four
while ($j < 4) {
if (array_key_exists($i + $j, $ones)) {
//if exists, add to temp array
$a[] = $ones[$i + $j];
}
$j++;
}
// Build string from array by implode and add to final array
$finalArray[] = implode(',', $a);
$i+=4;
}
var_dump($finalArray);
答案 6 :(得分:0)
尝试一下。
$x = '234,153,25,25,85,36,40,40,188,155,60,60';
$tmp = explode(",", $x);
$array = [];
$i = 0;
$j = 0;
$c = '';
foreach($tmp as $key => $piece) {
if($i != 0){
$c .= ','.$piece;
}else{
$c .= $piece;
}
$i++;
if($i == 3){
$i = 0;
$array[] = $c;
$c = '';
}
$j++;
}