Куда пропала первая строка масива

WMix

герр M:)ller
Партнер клуба
Куда пропала первая строка масива

это уже не вопрос... это так кому не лень голову поломать дабы не наталкиваться на подобное в будушем....

тестировал програмку и наткнулся на проблемку,
на самом деле нормальная логическая ошибка для языка типа пхп в котором.... (ответ на вопрос)

итак, куда пропадает первая строчка из масива?

PHP:
<?php

$arr = array(
	array('a'=>1,'b'=>2,'c'=>3),
	array('a'=>2,'b'=>3,'c'=>4),
	array('a'=>3,'b'=>4,'c'=>5),
	array('a'=>4,'b'=>5,'c'=>6),
	'abc' => 4
);
$out = "";
$firstLine = true;

foreach( $arr as $rowIdx => $rows ){
	if($rowIdx != 'abc'){
		if($firstLine){
			$out .= implode( " | ", array_keys($rows) )."\n";
			$out .= "----------------------\n";
			$firstLine = false;
		}
		$out .= implode( " | ", $rows );
		$out .= "\n";
	}
}
echo $out;

// a | b | c
// ----------------------
// 2 | 3 | 4
// 3 | 4 | 5
// 4 | 5 | 6
в общем я ответ знаю, очень долго правда ломал голову
 

WMix

герр M:)ller
Партнер клуба
да не в мане дело,.. конечно же я знаю что 'abc' == 0, и что решение проблемы было $rowIdx !== 'abc' ...

просто задачка прикольная... и самое интересное если перед $out .= implode( " | ", $rows ); написать print_r($rows), то по какимто причинам вопрос типизации уже не стоит, и алгоритм отрабатывает правильно, за исключением конечноже ненужного вывода....
 

Андрейка

Senior pomidor developer
самое интересное если перед $out .= implode( " | ", $rows ); написать print_r($rows), то по какимто причинам вопрос типизации уже не стоит, и алгоритм отрабатывает правильно, за исключением конечноже ненужного вывода.

не воспроизводится.
 

WMix

герр M:)ller
Партнер клуба
хм... теперь уже нет.... а веть было было... ))) пока тормозил....
 
Сверху