| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
mblaky
Data înscrierii: 11/Sep/2007
Mesaje: 137
|
| Trimis: Vin Noi 09, 2007 1:27 pm Titlul subiectului: Array :D [IMPORTANT] |
|
|
Daca am un array $data = ('data1','data2');
Sa am o functie care sa adauge la array inca o data [ $data = ('data1','data2','data3'); ] ... si ceva care sa verifice daca un anumit text e continut in acel array de exemplu sa verifice daca data4 e acolo si sa zica ca nu e sau data2 si sa zica ca e...
ms anticipat... |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 634
Locație: Drobeta Turnu Severin
|
| Trimis: Vin Noi 09, 2007 2:33 pm Titlul subiectului: |
|
|
Citeste aici http://www.php.net/manual/en/ref.array.php
(vezi array_shift) |
|
| Sus |
|
kleampa
Data înscrierii: 10/Iul/2005
Mesaje: 2115
Locație: Bucuresti
|
| Trimis: Vin Noi 09, 2007 3:09 pm Titlul subiectului: |
|
|
array-ul se face de tipul: $array = array(val1,val2);
adaugarea unui nou element se face cu : $array[] = "elemen nou";
cautarea in array se face in_array()
mai multe info despre fiecare in manual |
|
| Sus |
|
mblaky
Data înscrierii: 11/Sep/2007
Mesaje: 137
|
| Trimis: Vin Noi 09, 2007 3:31 pm Titlul subiectului: |
|
|
Merci de sfaturi, am facut cam asa:
Cod:
$main = Array();
while ( /* conditie */ ) {
array_push($main,$new); // $new - Data extrasa inainte
// Cu mysql se primeste o noua valuare pentru $new
$data = array_intersect(Array('0'=>$new),$main);
if ( $data[0] == "" ) { /* Ce trebuie executat */ }
}//endwhile
Asa in cazul in care $new inregistreaza o data care se afla in array nu se executa ce trebuie executat decat o singura data pentru fiecare valoare a lui $new. |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 634
Locație: Drobeta Turnu Severin
|
| Trimis: Vin Noi 09, 2007 5:32 pm Titlul subiectului: |
|
|
Eu zic mai intai sa cauti daca exista DATA deja in array asa cum ti-a spus @kleampa cu in_array() si apoi sa adaugi data la array cu array_push() sau cu $data[]= $newdata;
N-am inteles ce vrei sa faci. |
|
| Sus |
|
mihaitha
Data înscrierii: 04/Mai/2007
Mesaje: 1763
Locație: Sibiu
|
| Trimis: Dum Noi 11, 2007 12:26 pm Titlul subiectului: |
|
|
iti garantez ca script-ul tau:
<?
$main = Array();
while ( /* conditie */ ) {
array_push($main,$new); // $new - Data extrasa inainte
// Cu mysql se primeste o noua valuare pentru $new
$data = array_intersect(Array('0'=>$new),$main);
if ( $data[0] == "" ) { /* Ce trebuie executat */ }
}//endwhile
?>
ruleaza de cel putin 5 ori mai lent decat varianta optimizata dupa sfaturile lui kleampa (pe care tu le ignori):
<?
$main = Array();
while ( /* conditie */ ) {
// Cu mysql se primeste o noua valuare pentru $new
if (!in_array($new, $main)) {
$main[] = $new;
// eventual alt cod ce mai vrei sa il faca
}
}
?>
Remember: KISS! |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |