Function ed Array

vitelli

Utente Attivo
23 Mar 2012
41
0
0
Ragazzi, ho provato nel creare un'array di questo tipo:

PHP:
$points = array( 
    array('A','B',5), 
	array('A','C',2),
	array('B','A',5), 
	array('B','C',1),
	array('C','A',2), 
	array('C','B',1), 
); 
qui effettuo una stampa di quello che ho inserito al suo interno..

for ($i=0,$m=count($points); $i<$m; $i++) { 
    $x = $points[$i][0]; 
	echo $x;
    $y = $points[$i][1]; 
	echo $y;
    $c = $points[$i][2]; 
	echo $c;

ora quello che volevo creare era una Function che passato in input 2 parametri, dovevo controllare se PARAMETRO1 era uguale ad uno dei valori presenti nell'array e se PARAMETRO2 a sua volta faceva parte della combinazione dove era presente PARAMETRO1..so che la cosa è un pò contorta ma quello che mi serve è sapere quel numeretto che è associato a PARAMETRO1 e PARAMETRO2 ('A','B') nel mio Array scritto da me..
 
Ciao,
sempre se ho capito :

PHP:
<?php

function get_number($x, $y) {
    $points = array(
        array('A', 'B', 5),
        array('A', 'C', 2),
        array('B', 'A', 5),
        array('B', 'C', 1),
        array('C', 'A', 2),
        array('C', 'B', 1),
    );
    foreach ($points as $array) {
        if ($array[0] == $x && $array[1] == $y) {
            return $array[2];
        }        
    }
    return "nessun risultato";
}

$risultato = get_number("C", "A");

echo $risultato;
?>

potrebbe andare?
 
Ti ho scritto una piccola funzione per farti un esempio
PHP:
function check_param($p1,$p2){
$points = array(  
    array('A','B',5),  
    array('A','C',2), 
    array('B','A',5),  
    array('B','C',1), 
    array('C','A',2),  
    array('C','B',1),  
); 
 
for($i=0;$i<count($points);$i++) 

if(in_array($p1,$points[$i]) && in_array($p2,$points[$i])) return $points[$i][2];

return "i valori non corrispondono";
}
echo check_param('A','B');

Edit: ho letto che ti serviva il terzo valore e l'ho aggiunto al posto del boolean
 
Ultima modifica:
ciao
oppure così
PHP:
<?php
function cerca($p1,$p2,$arr){
	foreach($arr as $chiave => $valore){
		if(in_array($p1, $valore) && in_array($p2, $valore)){
			$posizione[]=$chiave;
		}
	}
	if(is_array($posizione)){
		return $posizione;
	}else{
		return false;
	}
}
//--------------
$points = array( 
    array('A','B',5), 
    array('A','C',2),
    array('B','A',5), 
    array('B','C',1),
    array('C','A',2), 
    array('C','B',1), 
);
$p_1="B";// parametri da cercare
$p_2=1;
if(cerca($p_1,$p_2,$points)){
	foreach(cerca($p_1,$p_2,$points) as $valore){
		echo "i parametri $p_1 e $p_2 si trovano nell'arrai n. $valore<br>";
	}
}else{
	echo "non trovata corrispondenza<br>";
}
?>

p.s.
bene ora vitelli riceverà poche idee, ma confuse
 
Ti ho scritto una piccola funzione per farti un esempio
PHP:
function check_param($p1,$p2){
$points = array(  
    array('A','B',5),  
    array('A','C',2), 
    array('B','A',5),  
    array('B','C',1), 
    array('C','A',2),  
    array('C','B',1),  
); 
 
for($i=0;$i<count($points);$i++) 

if(in_array($p1,$points[$i]) && in_array($p2,$points[$i])) return $points[$i][2];

return "i valori non corrispondono";
}
echo check_param('A','B');

Edit: ho letto che ti serviva il terzo valore e l'ho aggiunto al posto del boolean

don't user code for($i=0;$i<count($points);$i++)
should using $leng = count($points); for($i=0;$i<$leng;$i++) is faster than over line
 
don't user code for($i=0;$i<count($points);$i++)
should using $leng = count($points); for($i=0;$i<$leng;$i++) is faster than over line
I have test this on local but i haven't see differences in document speed, so do not declare other variables unnecessary
 

Discussioni simili