Array Multidimensionale Automatico

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Salve Ragazzi volevo chiedervi e possibile creare un array multidimensionale automaticamente creando una funzione. Per esempio:
PHP:
function MultyArray( $a, $b ){

/*************/

}

$array = MultyArray( 'meta:title', 'Titolo' );

echo $array['meta']['title'];

Mi sto scervellando ma non riesco a creare una funzione decende.
 

skillsfactory

Utente Attivo
23 Nov 2012
50
0
0
PHP:
function MultyArray( $a, $b ){
 
 	$parts = explode(':', $a);
 	
 	return array( $parts[0] => array($parts[1] => $b) );
 
 }
 
 $array = MultyArray( 'meta:title', 'Titolo' );
 
 echo $array['meta']['title'];
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
PHP:
function MultyArray( $a, $b ){
 
 	$parts = explode(':', $a);
 	
 	return array( $parts[0] => array($parts[1] => $b) );
 
 }
 
 $array = MultyArray( 'meta:title', 'Titolo' );
 
 echo $array['meta']['title'];

Grazie per la risposta pero mi servirebbe piu dinamico questo e solo a 2 livelli. Es:
PHP:
$a = 'meta:title:author:name:ecc';
Diciamo bisognierebbe impostare un ciclo o cose del genere...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dovresti spiegare meglio cosa intendi per array multidimensionale
es ti scrivi
$a = 'meta:title:author:name:ecc';
vuoi ottenere
$pinco['meta']['title']
$pinco['meta']['author']
$pinco['meta']['name']
ecc...
e poi come devi valorizzare i vari elementi dell'arryai
es.
$b = 'divina commedia:alighieri:dante:ecc';
$pinco['meta']['title']=>"divina commedia"
$pinco['meta']['author']=>"alighieri"
$pinco['meta']['name']=>"dante"
ecc...
è così?
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
ciao
dovresti spiegare meglio cosa intendi per array multidimensionale
es ti scrivi
$a = 'meta:title:author:name:ecc';
vuoi ottenere
$pinco['meta']['title']
$pinco['meta']['author']
$pinco['meta']['name']
ecc...
e poi come devi valorizzare i vari elementi dell'arryai
es.
$b = 'divina commedia:alighieri:dante:ecc';
$pinco['meta']['title']=>"divina commedia"
$pinco['meta']['author']=>"alighieri"
$pinco['meta']['name']=>"dante"
ecc...
è così?

Eccoti un esempio ma e sbagliato:
PHP:
class MultyArray {

 private $array;

 function get( $a, $b ){
  
  $a = explode( ':', $a );
  
  $array = $this->multy( $a, $b );
  
  return $array;

 }

 function multy( $a, $b ){

		if( is_array( $a ) ){
			
			$count = count( $a ) - 1;
				
				foreach( $a as $k => $v ){
					
					if( $k == $count ){
						
						/*** Mi Manca questa parte e poi cmq non funziona bene *****/
						
					}else{
					
						unset( $a[$k] );
						
						$this->array = array( $v => $this->multy( $a, $b ) );
						
						break;
	
					}
					
				}
				
			}
			
		
		return $this->array;
 }

}
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Ragazzi sono a buon punto o ad un vicolo cieco:
PHP:
class MultyArray {

private $array;

function set( $a, $b ){

$a = explode( ':', $a );

$array = $this->multy( $a, $b );

return $array;

}

private function multy( $a, $b ){

		if( is_array( $a ) ){
							
			foreach( $a as $k => $v ){
				
				unset( $a[$k] );
				
				$this->array = array( $v => $this->multy( $a, $b ) );
				
				break;
				
			}

		}
		
		return $this->array;

}

}

ecco il risultato:
PHP:
Array
(
    [post] => Array
        (
            [author] => Array
                (
                    [name] => 
                )

        )

)

Ora pero come faccio ad inserire il Valore nell Array ???
 
Ultima modifica:

skillsfactory

Utente Attivo
23 Nov 2012
50
0
0
non capisco cosa vuoi fare, cmq prova questo:

PHP:
 function MultyArray( $a, $b )
 {
 	$index = '';
    $return = array();
 	$parts = explode(':', $a);
 	
 	foreach ($parts as $j => $value )
 	{
 		if( empty($index) )
 			$index = $value;
 		
 		if( $value != $index)
 			$return[$index][$value] = $b;
 	}
 	 
 	return $return;
 
 }
 
 $array = MultyArray( 'meta:title:author:name', 'Titolo' );
 
 print_r( $array );

risultato
Codice:
Array
(
    [meta] => Array
        (
            [title] => Titolo
            [author] => Titolo
            [name] => Titolo
        )

)

forse devi spiegarci meglio cosa vuoi fare...
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
non capisco cosa vuoi fare, cmq prova questo:

PHP:
 function MultyArray( $a, $b )
 {
 	$index = '';
    $return = array();
 	$parts = explode(':', $a);
 	
 	foreach ($parts as $j => $value )
 	{
 		if( empty($index) )
 			$index = $value;
 		
 		if( $value != $index)
 			$return[$index][$value] = $b;
 	}
 	 
 	return $return;
 
 }
 
 $array = MultyArray( 'meta:title:author:name', 'Titolo' );
 
 print_r( $array );

risultato
Codice:
Array
(
    [meta] => Array
        (
            [title] => Titolo
            [author] => Titolo
            [name] => Titolo
        )

)

forse devi spiegarci meglio cosa vuoi fare...

Gia ho detto prima devo creare un array in questo modo:
PHP:
$array = new MultyArray();

$var = $array->set( 'post:author:name', 'Nome dell autore del post' );

echo $var['post']['author']['name'];

/* Oppure */

echo $array->get( 'post:author:name' );
 
Ultima modifica:

skillsfactory

Utente Attivo
23 Nov 2012
50
0
0
PHP:
function MultyArray( $strArray, $strValue )
 {
 	list($first, $second)  = explode(':', $strArray, 2);
 	
 	if( strpos($second, ':') !== false )
 		return array($first => MultyArray( $second, $strValue ));
 	else 
 		return array($first => array($second => $strValue) );
 }
 
 $array = MultyArray( 'post:author:name', 'Nome dell autore del post' );
 
 print_r( $array );


Codice:
Array
(
    [post] => Array
        (
            [author] => Array
                (
                    [name] => Nome dell autore del post
                )

        )

)
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
PHP:
function MultyArray( $strArray, $strValue )
 {
 	list($first, $second)  = explode(':', $strArray, 2);
 	
 	if( strpos($second, ':') !== false )
 		return array($first => MultyArray( $second, $strValue ));
 	else 
 		return array($first => array($second => $strValue) );
 }
 
 $array = MultyArray( 'post:author:name', 'Nome dell autore del post' );
 
 print_r( $array );


Codice:
Array
(
    [post] => Array
        (
            [author] => Array
                (
                    [name] => Nome dell autore del post
                )

        )

)

Grazie !!!
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Scusami ce un problema ora, non posso inserire piu array nella stessa variabile mi legge solo l ultimo valore. Es:
PHP:
$var = MultyArray( 'post:title', 'Titolo Post' );
$var = MultyArray( 'post:ID', 21 );

/* Mi restituisce solo l ultimo valore $var['post']['ID'] */
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Scusami ce un problema ora, non posso inserire piu array nella stessa variabile mi legge solo l ultimo valore. Es:
PHP:
$var = MultyArray( 'post:title', 'Titolo Post' );
$var = MultyArray( 'post:ID', 21 );

/* Mi restituisce solo l ultimo valore $var['post']['ID'] */

Ok. Ho Modificato se si usa una funzione bisogna creare un Global altrimenti bisogna creare una classe.
PHP:
	function MultyArray( $strArray, $strValue ){
		
	    global $var;
		
	     list($first, $second)  = explode(':', $strArray, 2); 
	      
	     if( strpos($second, ':') !== false )
		 	$var[$first] = self::MultyArray( $second, $strValue );
	         #return array($first => self::MultyArray( $second, $strValue )); 
	     else 
		 	$var[$first][$second] = $strValue; 
	         #return array($first => array($second => $strValue) );
		 
		 return $var;
		 
	}

$array = MultyArray( 'post:title', 'Titolo Post' );
$array = MultyArray( 'post:ID', 21 );

/* Ecco il Risultato */
Array
(
    [post] => Array
        (
            [title] => Titolo Post
            [ID] => 21
        )

)
 

skillsfactory

Utente Attivo
23 Nov 2012
50
0
0
beh ovvio :D se sostituisci il valore è normale che sia così...

fai così

PHP:
 $array1 = MultyArray( 'post:author:name', 'Nome dell autore del post' );
 $array2 = MultyArray( 'post:ID', 21 );
 
 print_r( $array1 );
 print_r( $array2 );


HTML:
Array
(
    [post] => Array
        (
            [author] => Array
                (
                    [name] => Nome dell autore del post
                )

        )

)
Array
(
    [post] => Array
        (
            [ID] => 21
        )

)
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
beh ovvio :D se sostituisci il valore è normale che sia così...

fai così

PHP:
 $array1 = MultyArray( 'post:author:name', 'Nome dell autore del post' );
 $array2 = MultyArray( 'post:ID', 21 );
 
 print_r( $array1 );
 print_r( $array2 );


HTML:
Array
(
    [post] => Array
        (
            [author] => Array
                (
                    [name] => Nome dell autore del post
                )

        )

)
Array
(
    [post] => Array
        (
            [ID] => 21
        )

)

Lo so, pero mi serve come ho fatto prima.

PHP:
$array = MultyArray( 'post:title', 'Titolo Post' );
$array = MultyArray( 'post:ID', 21 );

Cmq Grazie !
 
Discussioni simili
Autore Titolo Forum Risposte Data
otto9due Leggere valore da array multidimensionale a chiavi dinamiche PHP 1
G Ordinare un array multidimensionale PHP 4
A Gestione array multidimensionale PHP 6
max1974 PHP, Array Multidimensionale e Grafici PHP 22
C [PHP] Chiedo un aiuto, Array multidimensionale. PHP 3
F [PHP] Problema con array multidimensionale PHP 4
Wallace911 Array multidimensionale ottenuto tramite json jQuery 1
A [PHP] Ciclare array multidimensionale e inserire valori in DB PHP 2
C [PHP] rimuovere righe duplicate in un array multidimensionale PHP 1
C [PHP] eliminare elemento da un array multidimensionale PHP 9
P [PHP] ordinare un array multidimensionale in modo personalizzato PHP 2
C [PHP] RISOLTO - Eliminare elementi duplicati da array multidimensionale PHP 1
Andrea Perrone [Javascript] scacchiera con Array multidimensionale Javascript 4
V [PHP] stampa a video valori query array multidimensionale PHP 4
L Array multidimensionale mappa browsergame PHP 1
A accedere a Json Array multidimensionale jQuery 1
M Ordinare array (multidimensionale)? PHP 3
A sommare valori in un array multidimensionale PHP 0
M Ordinare array multidimensionale con esclusioni Javascript 0
M Array multidimensionale. Javascript 1
E ordinamento array multidimensionale per un valore ottenuto tramite una funzione PHP 1
A Dividere array multidimensionale in altri array multidimensionali PHP 9
Monital [PHP] Array multidimensionale PHP 17
F Aggiungere parte di un array multidimensionale PHP 5
Monital Ci mancava l'array multidimensionale PHP 16
M Passaggio variabili array php su un tasto jq PHP 3
M Somma inversa di Array C/C++ 2
MarcoGrazia Iterazione array PHP 5
N Passare array da php a javascript PHP 5
H Errore su array associativo PHP 1
K Array senza ripetizioni Presentati al Forum 4
otto9due Più chiavi in array con array_key_exists() PHP 0
M Array associativi php su 2 campi mysql PHP 10
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L Sessione e array per utenti PHP 0
R Importazione csv su mysql tramite array PHP 2
elpirata Ricavare e stampare indirizzo ip da array associativo PHP 0
P Ciclare tra array di oggetti PHP 1
R Raggruppare valori array PHP 5
S Come conoscere la posizione di numeri in un array escludendo i doppioni PHP 4
D Popolare array PHP 8
R Includere elementi array fra apici PHP 1
P Array da foreach PHP 2
N Variabile di sessione è un array PHP7 PHP 3
R Scorporare array e recuperare record tabella PHP 10
A Contare gli elementi di un array PHP 13
A Importare array in mysql PHP 1
A Array di immagini Sviluppo app per Android 10
D Chiave unica in estrazione dati da array php PHP 0

Discussioni simili