Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除空数组元素_Php_Multidimensional Array - Fatal编程技术网

Php 删除空数组元素

Php 删除空数组元素,php,multidimensional-array,Php,Multidimensional Array,我刚刚演示了从数组中删除小数点超过2位的数字的方法。 问题是当我尝试使用echo而不是var_dump格式化输出时: $line = 1; for($i = 1; $i < count($value1); $i++){ echo "$line | ".$value1[$i][0]." | ".$value1[$i][1]." | ".$value1[$i][2]." | ".$value1[$i][3]

我刚刚演示了从数组中删除小数点超过2位的数字的方法。 问题是当我尝试使用echo而不是var_dump格式化输出时:

$line = 1;
for($i = 1; $i < count($value1); $i++){
    echo "$line | ".$value1[$i][0]." | ".$value1[$i][1]." | ".$value1[$i][2]." | ".$value1[$i][3]." | ".$value1[$i][4].'<br>';
    $line = $line + 1;
}
$line=1;
对于($i=1;$i;
$line=$line+1;
}
我得到很多“通知:未定义的偏移量:”到处都是。是否有方法重置数组中的行

我需要使用“echo”对其进行格式化的原因是,我可以直接复制输出并将其粘贴到文档中,而无需从“var_dump”中删除不必要的字符。我做错了吗

Thanx提前


Thanx提前。

使用内爆而不是不规则的连接怎么样

<?php
foreach ($value1 as $counter => $line){
    echo ($counter + 1) . " | ". implode(" | ", $line) . '<br>';
}

使用内爆而不是不规则的连接怎么样

<?php
foreach ($value1 as $counter => $line){
    echo ($counter + 1) . " | ". implode(" | ", $line) . '<br>';
}

我不知道数组是什么样子,但您的代码中肯定有一个错误:

for($i = 1; $i < count($value1); $i++)

或者使用更简单的方法。

我不知道数组是什么样子,但代码中肯定有一个错误:

for($i = 1; $i < count($value1); $i++)
或者使用更简单的方法。

解决了这个问题。 会议结束后:

function decimalFilter($v) {
        foreach ( $v as $x ) {
            if (strlen(substr(strrchr($x, "."), 1)) > 2)
                return false;
        }
        return true;
    }
$value = array_filter($value, "decimalFilter");
然后我补充说:

sort($value);
其次是:

for($i = 1; $i < count($value); $i++){
    echo $value[$i][0]." | ".$value[$i][1]." | ".$value[$i][2]." | ".$value[$i][3]." | ".$value[$i][4].'<br>';
}
for($i=1;$i”;
}
在输出过程中丢失的元素消失了。问题是,我不知道这是否是一种实用的方法。

解决了它。 会议结束后:

function decimalFilter($v) {
        foreach ( $v as $x ) {
            if (strlen(substr(strrchr($x, "."), 1)) > 2)
                return false;
        }
        return true;
    }
$value = array_filter($value, "decimalFilter");
然后我补充说:

sort($value);
其次是:

for($i = 1; $i < count($value); $i++){
    echo $value[$i][0]." | ".$value[$i][1]." | ".$value[$i][2]." | ".$value[$i][3]." | ".$value[$i][4].'<br>';
}
for($i=1;$i”;
}

在输出过程中丢失的元素消失了。我不知道这是否是一种实用的方法。

您可以使用几种方法删除或忽略数组元素,而无需PHP发出通知:

$line = 1;
for($i = 1; $i < count($value1); $i++){
if( isset( $value[$i][0]) === TRUE && isset( $value[$i][1]) === TRUE && isset( $value[$i][2]) === TRUE && isset( $value[$i][3]) === TRUE && isset( $value[$i][4]) === TRUE )
{
    echo "$line | ".$value1[$i][0]." | ".$value1[$i][1]." | ".$value1[$i][2]." | ".$value1[$i][3]." | ".$value1[$i][4].'<br>';
}

    $line = $line + 1;
}
$line=1;
对于($i=1;$i;
}
$line=$line+1;
}

或者,您可以使用count($value[$i][0])>0来确保数组中包含值。

您可以使用几种方法删除或忽略数组元素,而无需发出通知:

$line = 1;
for($i = 1; $i < count($value1); $i++){
if( isset( $value[$i][0]) === TRUE && isset( $value[$i][1]) === TRUE && isset( $value[$i][2]) === TRUE && isset( $value[$i][3]) === TRUE && isset( $value[$i][4]) === TRUE )
{
    echo "$line | ".$value1[$i][0]." | ".$value1[$i][1]." | ".$value1[$i][2]." | ".$value1[$i][3]." | ".$value1[$i][4].'<br>';
}

    $line = $line + 1;
}
$line=1;
对于($i=1;$i;
}
$line=$line+1;
}

或者可以使用count($value[$i][0])>0来确保数组中包含值。

循环数组的正确方式取决于特定数组的内容和结构。那么…你的阵列中有什么?使用var_dump()并为我们很好地格式化输出。循环数组的正确方式取决于特定数组的内容和结构。那么…你的阵列中有什么?使用var_dump()并为我们很好地格式化输出。