2012-11-11 3 views
0

난 그냥 배열 [here]에서 2 개 이상의 소수점으로 숫자를 제거하는 방법을 보여왔다.삭제 빈 배열 요소

$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; 
} 

나는 많은 "공지 사항 : 오프셋 정의되지 않은"얻을 : 사방에 내가 같은 위해서 var_dump 대신 에코 사용하여 출력을 포맷 할 때 것은입니다. 배열의 행을 다시 설정하는 방법이 있습니까?

제가 "에코"나 "위해서 var_dump"에서 불필요한 문자를 삭제하지 않고 문서에 직접 출력을 복사 및 붙여 넣을 수 있도록 인으로 포맷 할 필요가있는 이유. 내가 잘못 했니?

고배율 미리 ...

고지.

+0

배열을 반복하는 적절한 방법은 특정 배열의 내용과 구조에 따라 다릅니다. 그래서 ... 당신의 배열에 뭐가 있습니까? var_dump()를 사용하고 우리에게 멋지게 출력 형식을 지정하십시오. – goat

답변

2

무엇 손재주가 연결 대신 내파 사용에 대한?

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

이렇게하면 기존 값만 연결됩니다. 그래도 배열에서 요소를 제거하려면 빈 공간이 있는지 확인한 후 unset을 사용하는 것이 좋습니다.

1

내가 배열처럼 보이는 방법을 몰라,하지만 하나의 오류는 확실히 코드에서 발생하는입니다

가 배열 인덱스 0 시작 PHP에서
for($i = 1; $i < count($value1); $i++) 

, 당신은 당신을 수정해야 같은 코드 :

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

또는 훨씬 쉽게 foreach를 사용합니다.

1

해결되었습니다. 애프터 :

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>'; 
} 

누락 요소는 출력시 사라졌다. 이것이 실용적인 접근이라면 나는 아직 몰라.

1

당신은 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; 
} 

하거나 ([$ 내가] [0] $ 값)> 0 보장하기 위해 수를 사용할 수 있습니다 배열에는 값이 들어 있습니다.