Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    prendere un campo preciso di un array

    ciao,

    è possibile prendere solo uno specifico capo in un array
    cioè

    io ho un array come questo

    $image =array();
    $index=0;
    $image[]=array('idz'=>1,'idxtipo'=>$index++,'titleimg'=>$v ariabile1,'imgname'=>$variabile1);
    $image[]=array('idz'=>2,'idxtipo'=>$index++,'titleimg'=>$v ariabile1,'imgname'=>$variabile1)
    $image[]=array('idz'=>3,'idxtipo'=>$index++,'titleimg'=>$v ariabile1,'imgname'=>$variabile1)
    $image[]=array('idz'=>4,'idxtipo'=>$index++,'titleimg'=>$v ariabile1,'imgname'=>$variabile1)

    e vorrei prendere da questo array solo la riga con idz = 2

    come posso fare a prendere solo quella?

  2. #2

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Puoi fare cosi ( esiste forse una funzione ma non la conosco )

    codice:
    <?php 
    $variabile1 = 'pppppppppppppp';
    $image =array(); 
    $index=0; 
    $image[]=array('idz'=>1,'idxtipo'=>$index++,'titleimg'=>$variabile1,'imgname'=>$variabile1); 
    $image[]=array('idz'=>2,'idxtipo'=>$index++,'titleimg'=>$variabile1,'imgname'=>$variabile1); 
    $image[]=array('idz'=>3,'idxtipo'=>$index++,'titleimg'=>$variabile1,'imgname'=>$variabile1) ;
    $image[]=array('idz'=>4,'idxtipo'=>$index++,'titleimg'=>$variabile1,'imgname'=>$variabile1); 
    
    function search($anArray,$aKey,$aValue) {
     foreach ($anArray as $key => $value) {
      //print_r($value);
      if ($value[$aKey]==$aValue) {
       return $value;	
    	} //
     } // 
     return false;
    } // 
    $result = search($image,'idz',2);
    if ($result == false) {
     print "not found";
    } else {
     print_r($result);
    } 
    $result = search($image,'idz',20);
    if ($result == false) {
     print "not found";
    } else {
     print_r($result);
    } 
     ?>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    ok grazie ma non mi funziona il codice mi da sempre falsee quindi stampa sempre not found

    codice:
    function search($anArray,$aKey,$aValue) {
    	foreach ($anArray as $key => $value) {
    		if ($value[$aKey]==$aValue) {
    			return $value;       
    		} 
    	 } 
    	 return false;
    }  
    
    	$image =array();
    
    	$index=0;
    	
    	while($column=mysql_fetch_array($listaimage2)){
    		$image[$index++]=array('idz'=>$column[idz],'idxtipo'=>$index,'titleimg'=>$column[titleimg],'imgname'=>$column[imgname], 'table'=>'News', 'directory'=>$column[directory]);
    	}
    	
    	while($column=mysql_fetch_array($listaimage3)){
    		$image[$index++]=array('idz'=>$column[idz],'idxtipo'=>$index,'titleimg'=>$column[titleimg],'imgname'=>$column[imgname], 'table'=>'Game');
    	}
    	$image[]=array('idz'=>9999,'idxtipo'=>9999,'titleimg'=>utima,'imgname'=>imgname);
    
    	$indeximg=0;
    	$contarighe = 0;
    
    	$thisimage = search($image,'idz',$id);
    	if ($thisimage == false) {
    		print "not found";
    	} else {
    		echo"$thisimage[idz] - $thisimage[idxcate] - $thisimage[directory]  ";
    	}

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    dove é settata $id ?

    se testi il codice che ho postato vedrai che funziona.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    la setto tramite un get a inizio pagina
    ed ho anche messo un echo che visualizza sia l'id che la risposta tutto è giusto

    so anche che lo dovrebbe trovare afforza perchè nell'array c'è ma da sempre not found

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Infatti funziona.

    Forse non hai l'error_reporting su E_ALL (come viene settato di solito sui servers)

    Devi mettere le chiavi tra apici idz -> 'idz'. Poi tutti i campi degli array devono avere tutte le chiavi ( non deve esserci un array senza la chiave 'directory' ) altrimenti ( sempre con l'error_reporting a E_ALL ) dà dei NOTICE.

    codice:
    <?
    function search($anArray,$aKey,$aValue) {
    	foreach ($anArray as $key => $value) {
    		if ($value[$aKey]==$aValue) {
    			return $value;       
    		} 
    	 } 
    	 return false;
    }  
    
    $listaimage2 = array();
    $listaimage2[] = array("idz"=>1,"titleimg"=>'image 1',"imgname"=>"titolo 1");
    $listaimage2[] = array("idz"=>2,"titleimg"=>'image 2',"imgname"=>"titolo 2");
    $listaimage2[] = array("idz"=>3,"titleimg"=>'image 3',"imgname"=>"titolo 3");
    $listaimage2[] = array("idz"=>4,"titleimg"=>'image 4',"imgname"=>"titolo 4");
    $listaimage2[] = array("idz"=>5,"titleimg"=>'image 5',"imgname"=>"titolo 5");
    $listaimage2[] = array("idz"=>6,"titleimg"=>'image 6',"imgname"=>"titolo 6");
    $listaimage2[] = array("idz"=>7,"titleimg"=>'image 7',"imgname"=>"titolo 7");
    
    $listaimage3 = array();
    $listaimage3[] = array("idz"=>10,"titleimg"=>'image 10',"imgname"=>"titolo 10");
    $listaimage3[] = array("idz"=>11,"titleimg"=>'image 11',"imgname"=>"titolo 11");
    $listaimage3[] = array("idz"=>12,"titleimg"=>'image 12',"imgname"=>"titolo 12");
    $listaimage3[] = array("idz"=>13,"titleimg"=>'image 13',"imgname"=>"titolo 13");
    $listaimage3[] = array("idz"=>14,"titleimg"=>'image 14',"imgname"=>"titolo 14");
    $listaimage3[] = array("idz"=>15,"titleimg"=>'image 15',"imgname"=>"titolo 15");
    $listaimage3[] = array("idz"=>16,"titleimg"=>'image 16',"imgname"=>"titolo 16");
    
    	$image =array();
    
    	$index=0;
    	
    	reset($listaimage2);
     	while($column=current($listaimage2)){
    		$image[$index++]=array('idz'=>$column['idz'],'idxtipo'=>$index,'titleimg'=>$column['titleimg'],'imgname'=>$column['imgname'], 'table'=>'News', 'directory'=>$column['directory']);
    		next($listaimage2);
    	}
    	reset($listaimage3);
     	while($column=current($listaimage3)){
    		$image[$index++]=array('idz'=>$column['idz'],'idxtipo'=>$index,'titleimg'=>$column['titleimg'],'imgname'=>$column['imgname'], 'table'=>'Game');
    		next($listaimage3);
    	}
    	$image[]=array('idz'=>9999,'idxtipo'=>9999,'titleimg'=>'utima','imgname'=>'imgname');
    
    	$indeximg=0;
    	$contarighe = 0;
    
      $id = 1;
    
    	$thisimage = search($image,'idz',$id);
    	if ($thisimage == false) {
    		print "not found";
    	} else {
    		echo"$thisimage[idz] - $thisimage[idxcate] - $thisimage[directory]  ";
    	} 
    ?>
    dà con $id=1
    codice:
    Notice: Undefined index: directory in d:\program files\easyphp\www\tests\test3011.php on line 35
    
    Notice: Undefined index: directory in d:\program files\easyphp\www\tests\test3011.php on line 35
    
    Notice: Undefined index: directory in d:\program files\easyphp\www\tests\test3011.php on line 35
    
    Notice: Undefined index: directory in d:\program files\easyphp\www\tests\test3011.php on line 35
    
    Notice: Undefined index: directory in d:\program files\easyphp\www\tests\test3011.php on line 35
    
    Notice: Undefined index: directory in d:\program files\easyphp\www\tests\test3011.php on line 35
    
    Notice: Undefined index: directory in d:\program files\easyphp\www\tests\test3011.php on line 35
    
    Notice: Undefined index: idxcate in d:\program files\easyphp\www\tests\test3011.php on line 54
    1 - -
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    ok grazie 1000 ora funziona benissimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.