Portál AbcLinuxu, 28. října 2025 16:33
Díky za pomoc
<?php
$arr = array('foo1' => array('aaa', '111', '0', true, 'AAA'),
'foo2' => array('bbb', '111', '1', true, 'CCC'),
'foo3' => array('bbb', '111', '0', false, 'AAA'));
if($arr['foo2'][0] == 'bbb' AND $arr['foo2'][1] == 111 AND $arr['foo2'][2] == 1 AND $arr['foo2'][3] == true AND $arr['foo2'][4] == 'CCC')
echo "existuje";
else
echo "neexistuje";
?>
existuje
$e = false || true; $f = false or true; $g = true && false; $h = true and false; var_dump($e, $f, $g, $h);vypise:
bool(true) bool(false) bool(false) bool(true)vice info v dokumentaci
<?php
$arr = array('foo1' => array('aaa', '111', '0', true, 'AAA'),
'foo2' => array('bbb', '111', '1', true, 'CCC'),
'foo3' => array('bbb', '111', '0', false, 'AAA'),
'foo2' => array('bbb', '100', '1', true, 'CCC'));
if($arr['foo2'][0] == 'bbb' AND $arr['foo2'][1] == 111 AND $arr['foo2'][2] == 1 AND $arr['foo2'][3] == true AND $arr['foo2'][4] == 'CCC')
echo "existuje";
else
echo "neexistuje";
?>
array(3) {
["foo1"]=>
array(5) {
[0]=>
string(3) "aaa"
[1]=>
string(3) "111"
[2]=>
string(1) "0"
[3]=>
bool(true)
[4]=>
string(3) "AAA"
}
["foo2"]=>
array(5) {
[0]=>
string(3) "bbb"
[1]=>
string(3) "100"
[2]=>
string(1) "1"
[3]=>
bool(true)
[4]=>
string(3) "CCC"
}
["foo3"]=>
array(5) {
[0]=>
string(3) "bbb"
[1]=>
string(3) "111"
[2]=>
string(1) "0"
[3]=>
bool(false)
[4]=>
string(3) "AAA"
}
}
A nešlo by to načítat to pole index po indexu?
foo2 jen jeden. Kde jsou fyzicky ty informace o tech knihach?
$arr = array();
$arr[] = array('foo1', 'aaa', '111', '0', true, 'AAA');
$arr[] = array('foo2', 'bbb', '111', '1', true, 'CCC');
$arr[] = array('foo3', 'bbb', '111', '0', false, 'AAA');
$arr[] = array('foo2', 'bbb', '100', '1', true, 'CCC');
$arr = array();
$arr[] = array('foo1', 'aaa', '111', '0', true, 'AAA');
$arr[] = array('foo2', 'bbb', '111', '1', true, 'CCC');
$arr[] = array('foo3', 'bbb', '111', '0', false, 'AAA');
$arr[] = array('foo2', 'bbb', '100', '1', true, 'CCC');
$exists = false;
foreach ($arr as $book) {
if ($book[0] == 'foo2' && $book[1] == 'bbb' && $book[2] == '111' && $book[3] == '1' && $book[4] == true && $book[5] == 'CCC') {
$exists = true;
break;
}
}
echo $exists ? "existuje" : "neexistuje";
$arr = array();
$arr[] = array('foo1', 'aaa', '111', '0', true, 'AAA');
$arr[] = array('foo2', 'bbb', '--->111', '1', true, 'CCC');
$arr[] = array('foo3', 'bbb', '111', '0', false, 'AAA');
$arr[] = array('foo2', 'bbb', '100', '1', true, 'CCC');
když znám (foo2) ?
$arr = array();
$arr[] = array('foo1', 'aaa', '111', '0', true, 'AAA');
$arr[] = array('--->foo2', 'bbb', '111', '1', true, 'CCC');
$arr[] = array('foo3', 'bbb', '111', '0', false, 'AAA');
$arr[] = array('foo2', 'bbb', '100', '1', true, 'CCC');
nebo se to musí vždy projíždět celý cyklem? Díky
SELECT col2 FROM books WHERE title = 'foo2' AND col1 = 'bbb' AND col3 = 1 AND col4 = 1 AND col5 = 'CCC'nazvy sloupcu by to samozrejme chtelo smysluplnejsi, ale nevim co ty hodnoty znamenaj, tak jsem uvedl tyhle..
$selectedBooks = array_filter($arr, function($book)
{
return $book[0] == 'foo2'
&& $book[1] == 'bbb'
&& $book[2] == '111'
&& $book[3] == '1'
&& $book[4] == true
&& $book[5] == 'CCC'
;
});
$arr = array();
$arr[] = array('foo1', 'aaa', '111', '0', true, 'AAA');
$arr[] = array('foo2', 'bbb', '111', '1', true, 'CCC');
$arr[] = array('foo3', 'bbb', '111', '0', false, 'AAA');
$arr[] = array('foo2', 'bbb', '100', '1', true, 'CCC');
$arr2=array_filter($arr, function($kniha) {return $kniha[0]=='foo2';});
print_r($arr2);
Najde ti to hledané 2 záznamy a z těch si vybereš příslušné sloupce.
Pokud však to jsou knihy s atributy 'foo2', 'bbb', '111', '1', true, 'CCC', tak to můžeš udělat jako seznam objektů, se kterým se dá dovádět o něco lépe než s polem polí.
Opravdu nechceš použít databázi? Je to mnohem praktičtější.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.