Jump to content
php.lv forumi

PHP array un interesants pieprasīsanas veids


krisis007

Recommended Posts

Sveiki.

 

Man jatājums Jums, lielajiem profiņiem, kas noteikt man mācēs paskaidrot kā dabūt ko tādu gatavu.

 

Pieņemsis ka man ir array.

 

$array = array('a'=>array('b'=>array('c'=>'d')));

 

un es gribu iegūt vērtību

 

$array['a']['b']['c']

 

BET

 

vajadzētu tā kad es viņu varu iegūt šādi:

 

$str = "['a']['b']['c']";
echo $array.$str;

 

Pašreizējais piemērs izvada "Array['a']['b']['c']", bet nevis "d" kā vajadzētu.

 

 

Paldies.

Link to comment
Share on other sites

nu pieņemsim man ir usera ievadīta vērtība $_POST['arr'];

šādā formātā : "a|b|c"

 

tad es ar

explode('|',$_POST['arr']);

iegūstu array ar trīs vērtībām `a`,`b`,`c`

un tad ar

foreach($arr as $arr){
 	$str .= '[\''.$arr.'\']';
}

iegūstu ka $str = '['a']['b']['c']';

 

un tālāk jau kā pirmajā postā

 

Edit:

 

gribu pārbaudīt vai tādā vērtība pastāv un ja jā echo tās vērtību.

 

Paldies.

Edited by krisis007
Link to comment
Share on other sites

<input type="text" name="stuff[]" />
<input type="text" name="stuff[]" />
<input type="text" name="stuff[]" />
<input type="text" name="stuff[]" />

<?php

foreach ($_POST['stuff'] as $stuff) {

   echo $stuff . "\n";

}

?>

 

Ui, neizlasīju īsti ko tev vajag. Sanāk, ka ir inputs, kur ir jāievada kkas, bet lietotājam tas, ko viņš ievada, pašam ir jāatdala ar '|'?

 

 

<input type="text" name="stuff" />

<?php

$stuff = explode('|', $_POST['stuff']);

// Shajaa briidii es saprotu, ka nesaprotu, ko tu gribi panaakt...

foreach ($stuff as $value) {

   echo $value . "\n";

}

?>

Link to comment
Share on other sites

<input type="text" name="stuff[]" />
<input type="text" name="stuff[]" />
<input type="text" name="stuff[]" />
<input type="text" name="stuff[]" />

<?php

foreach ($_POST['stuff'] as $stuff) {

   echo $stuff . "\n";

}

?>

Ne, ne, ne inputs būtu tikai viens, un tas array būtu definēts php vidē.

 

Mans pažreizējais variants:

$arr = array('a'=>array('b'=>array('c'=>'d')));
$ievade = 'a|b|c';
$str = explode('|',$ievade);
foreach($str as $str){
if(isset($output,$output[$str])&&is_array($output)){
   	$output = $output[$str];
} elseif(isset($arr[$str])) {
   	$output = $arr[$str];
} else {
   	$output = false;
}
}
echo ((is_string($output))?$output:'NaN');

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...