Loop to read array - php

sorry if that can be a simple question. I need to read the index value of an array. The code that I have and try to correct read only the index 0. I have try with a ciclebut continue to make mistakes.
<? if($entrata != ""){
$nome_condomino = getCondominoByIdEntrata($entrata[0]['id']);
$saldo += (float) $entrata[0]['importo_versato'];
//echo '<pre>' . print_r( $entrata,true ) . '</pre>';
?>
<tr class="gradeX">
<td class="center"><?echo $giorno;?></td>
<td class="center"><?echo $nome_condomino[0]['nome_cognome'];?></td>
<td class="center"><b><?echo "€ ".$entrata[0]['importo_versato'];?></b></td>
<td class="center"><?echo "€ ".$saldo;?></td>
<td class="center"><?echo $giorno_ok;?></td>
<td class="center"><?echo $entrata_id[0];?></td>
</tr>
<? } ?>
I need to show the other index value for the variables $nome_condominio and $entrata
That is print_r( $entrata,true )
Array
(
[0] => Array
(
[0] => 41
[id] => 41
[1] => 35
[id_condominio] => 35
[2] => 38
[id_condomino] => 38
[3] => 12
[importo_versato] => 12
[4] => 2013-11-30
[data] => 2013-11-30
[5] =>
[numero_ricevuta] =>
[6] =>
[allegato_ricevuta] =>
[7] => 0
[consumi_idrici_importo] => 0
[8] => 0000-00-00
[data2] => 0000-00-00
[9] =>
[allegato_consumi_idrici] =>
[10] => 0
[lavori_straordinari_importo] => 0
[11] => 0000-00-00
[data3] => 0000-00-00
[12] =>
[causale] =>
[13] =>
[causale_altro] =>
[14] => 10_2013
[causale_mese] => 10_2013
[15] => Ottobre 2013
[causale_mese_periodo_esteso] => Ottobre 2013
)
[1] => Array
(
[0] => 40
[id] => 40
[1] => 35
[id_condominio] => 35
[2] => 52
[id_condomino] => 52
[3] => 18.2
[importo_versato] => 18.2
[4] => 2013-11-30
[data] => 2013-11-30
[5] =>
[numero_ricevuta] =>
[6] =>
[allegato_ricevuta] =>
[7] => 0
[consumi_idrici_importo] => 0
[8] => 0000-00-00
[data2] => 0000-00-00
[9] =>
[allegato_consumi_idrici] =>
[10] => 0
[lavori_straordinari_importo] => 0
[11] => 0000-00-00
[data3] => 0000-00-00
[12] => 2
[causale] => 2
[13] =>
[causale_altro] =>
[14] =>
[causale_mese] =>
[15] =>
[causale_mese_periodo_esteso] =>
)
)
Array
(
[0] => Array
(
[0] => 39
[id] => 39
[1] => 35
[id_condominio] => 35
[2] => 34
[id_condomino] => 34
[3] => 12.5
[importo_versato] => 12.5
[4] => 2013-12-01
[data] => 2013-12-01
[5] =>
[numero_ricevuta] =>
[6] =>
[allegato_ricevuta] =>
[7] => 0
[consumi_idrici_importo] => 0
[8] => 0000-00-00
[data2] => 0000-00-00
[9] =>
[allegato_consumi_idrici] =>
[10] => 0
[lavori_straordinari_importo] => 0
[11] => 0000-00-00
[data3] => 0000-00-00
[12] => 2
[causale] => 2
[13] =>
[causale_altro] =>
[14] =>
[causale_mese] =>
[15] =>
[causale_mese_periodo_esteso] =>
)
[1] => Array
(
[0] => 44
[id] => 44
[1] => 35
[id_condominio] => 35
[2] => 51
[id_condomino] => 51
[3] => 10
[importo_versato] => 10
[4] => 2013-12-01
[data] => 2013-12-01
[5] =>
[numero_ricevuta] =>
[6] =>
[allegato_ricevuta] =>
[7] => 0
[consumi_idrici_importo] => 0
[8] => 0000-00-00
[data2] => 0000-00-00
[9] =>
[allegato_consumi_idrici] =>
[10] => 0
[lavori_straordinari_importo] => 0
[11] => 0000-00-00
[data3] => 0000-00-00
[12] => 2
[causale] => 2
[13] =>
[causale_altro] =>
[14] =>
[causale_mese] =>
[15] =>
[causale_mese_periodo_esteso] =>
)
)
Array
(
[0] => Array
(
[0] => 42
[id] => 42
[1] => 35
[id_condominio] => 35
[2] => 39
[id_condomino] => 39
[3] => 10
[importo_versato] => 10
[4] => 2013-12-03
[data] => 2013-12-03
[5] =>
[numero_ricevuta] =>
[6] =>
[allegato_ricevuta] =>
[7] => 0
[consumi_idrici_importo] => 0
[8] => 0000-00-00
[data2] => 0000-00-00
[9] =>
[allegato_consumi_idrici] =>
[10] => 0
[lavori_straordinari_importo] => 0
[11] => 0000-00-00
[data3] => 0000-00-00
[12] => 3
[causale] => 3
[13] =>
[causale_altro] =>
[14] =>
[causale_mese] =>
[15] =>
[causale_mese_periodo_esteso] =>
)
)
Array
(
[0] => Array
(
[0] => 43
[id] => 43
[1] => 35
[id_condominio] => 35
[2] => 38
[id_condomino] => 38
[3] => 9
[importo_versato] => 9
[4] => 2013-12-05
[data] => 2013-12-05
[5] =>
[numero_ricevuta] =>
[6] =>
[allegato_ricevuta] =>
[7] => 0
[consumi_idrici_importo] => 0
[8] => 0000-00-00
[data2] => 0000-00-00
[9] =>
[allegato_consumi_idrici] =>
[10] => 0
[lavori_straordinari_importo] => 0
[11] => 0000-00-00
[data3] => 0000-00-00
[12] => 2
[causale] => 2
[13] =>
[causale_altro] =>
[14] =>
[causale_mese] =>
[15] =>
[causale_mese_periodo_esteso] =>
)
)
the function:
function getCondominoByIdEntrata($idEntrata){
$sql1 = "SELECT * FROM entrate WHERE id = '".$idEntrata."'";
$r1 = executeQuery($sql1);
$id_condomino = $r1[0]['id_condomino'];
$sql2 = "SELECT * FROM anagrafe WHERE id = '".$id_condomino."'";
$r2 = executeQuery($sql2);
return $r2;
}
The print_r( $nome_condomino):
Array
(
[0] => Array
(
[0] => 38
[id] => 38
[1] => 35
[id_condominio] => 35
[2] => Carlo Vincenzo
[nome_cognome] => Carlo Vincenzo
[3] =>
[codice_fiscale] =>
[4] =>
[dati_catastali_foglio] =>
[5] =>
[dati_catastali_particella] =>
[6] =>
[dati_catastali_subalterno] =>
[7] =>
[dati_catastali_piano] =>
[8] =>
[recapito] =>
[9] => 2
[civico] => 2
[10] =>
[citta] =>
[11] => TA
[provincia] => TA
[12] =>
[telefono] =>
[13] =>
[cellulare] =>
[14] =>
[fax] =>
[15] =>
[email] =>
[16] =>
[pec] =>
[17] => si
[occupante_uguale_titolare] => si
[18] =>
[occupante] =>
[19] =>
[occupante_rapporto] =>
[20] =>
[occupante_telefono] =>
[21] =>
[occupante_cellulare] =>
[22] =>
[occupante_email] =>
[23] =>
[occupante_pec] =>
[24] =>
[nome_utente] =>
)
)
Array
(
[0] => Array
(
[0] => 52
[id] => 52
[1] => 35
[id_condominio] => 35
[2] => Mario Giancarlo
[nome_cognome] => Mario Giancarlo
[3] =>
[codice_fiscale] =>
[4] =>
[dati_catastali_foglio] =>
[5] =>
[dati_catastali_particella] =>
[6] =>
[dati_catastali_subalterno] =>
[7] =>
[dati_catastali_piano] =>
[8] => Via Rossi
[recapito] => Via Rossi
[9] => 5
[civico] => 5
[10] =>
[citta] =>
[11] =>
[provincia] =>
[12] =>
[telefono] =>
[13] =>
[cellulare] =>
[14] =>
[fax] =>
[15] =>
[email] =>
[16] =>
[pec] =>
[17] => si
[occupante_uguale_titolare] => si
[18] =>
[occupante] =>
[19] =>
[occupante_rapporto] =>
[20] =>
[occupante_telefono] =>
[21] =>
[occupante_cellulare] =>
[22] =>
[occupante_email] =>
[23] =>
[occupante_pec] =>
[24] =>
[nome_utente] =>
)
)

You want foreach statement to get all data from array $entrata & $nome_condominio. Something like this maybe work:
UPDATED:
<?php if($entrata != ""){
//echo '<pre>' . print_r( $entrata,true ) . '</pre>';
$i = 0;
foreach($entrata as $entr){
$nome_condomino = getCondominoByIdEntrata($entr['id']);
$saldo += (float) $entr['importo_versato'];
?>
<tr class="gradeX">
<td class="center"><?echo $giorno;?></td>
<td class="center"><?echo $nome_condomino['nome_cognome'];?></td>
<td class="center"><b><?echo "€ ".$entr['importo_versato'];?></b></td>
<td class="center"><?echo "€ ".$saldo;?></td>
<td class="center"><?echo $giorno_ok;?></td>
<td class="center"><?echo $entr['id'];?></td>
</tr>
<?php
$i++;
} ?>
<? } ?>

Seems like $entrata isn't an array or is empty? Try changing
if ($entrata != '') {
to
if (!empty($entrata) && is_array($entrata)) {
will ensure that you're getting a non empty array

Related

Array concatenation of index in php

i have following array format in php:
Array
(
[item] => Array
(
[0] => RSJ Pole 116 x100 ,11 Mtr
[1] => RSJ Pole 116 x100 ,10 Mtr
[2] => RSJ Pole 116 x 100, 9 Mtr
[3] => RSJ Pole 116 x 100, 8 Mtr
[4] => Line Length in Kms
[5] => RSJ 125x70, 9 m long
[6] => PSC Pole 9 Mtr
[7] => PSC Pole 8 Mtr
[8] => Conductor ACSR Dog 0.1
[9] => Conductor ACSR Rabbit 55 Sq.mm
[10] => Conductor ACSR Raccon 80 Sq.mm
[11] => Conductor Weisel 34 Sq.mm
[12] => Conductor Ant
[13] => Conductor Gnat
[14] => New DTC 100 KVA
[15] => New DTC 63 KVA
[16] => BPL Connection
[17] => SDT
)
[scope] => Array
(
[0] => 1172
[1] => 6637
[2] => 854
[3] => 4
[4] => 653.71
[5] => 558.9
[6] => 5864
[7] => 820
[8] => 745385
[9] => 1188772.2
[10] => 327600
[11] => 18900
[12] => 232015.9
[13] => 70634.3
[14] => 344
[15] => 54
[16] => 13632
[17] => 37
)
[till] => Array
(
[0] => 3
[1] => 4
[2] => 4
[3] => 6
[4] => 5
[5] => 5
[6] => 5
[7] => 5
[8] => 2
[9] => 5
[10] => 5
[11] => 5
[12] => 5
[13] => 5
[14] => 5
[15] => 5
[16] => 5
[17] => 2
)
[value] => Array
(
[0] => 4
[1] => 7
[2] => 1
[3] => 2
[4] =>
[5] =>
[6] =>
[7] =>
[8] =>
[9] =>
[10] =>
[11] =>
[12] =>
[13] =>
[14] =>
[15] =>
[16] =>
[17] =>
)
[submit] => submit
)
i want to concatenate with "_" operator before submitting or while inserting into database field for eg. 1172_3_4
You can array_map the 3 arrays
$arr = .... //Your array here
$results = array_map(function($s, $t, $v) {
return $s . "_" . $t . "_" . $v;
}, $arr['scope'], $arr['till'], $arr['value']);
echo "<pre>";
print_r( $results );
echo "</pre>";
$results will have the value:
Array
(
[0] => 1172_3_4
[1] => 6637_4_7
[2] => 854_4_1
[3] => 4_6_2
[4] => 653.71_5_
[5] => 558.9_5_
[6] => 5864_5_
[7] => 820_5_
[8] => 745385_2_
[9] => 1188772.2_5_
[10] => 327600_5_
[11] => 18900_5_
[12] => 232015.9_5_
[13] => 70634.3_5_
[14] => 344_5_
[15] => 54_5_
[16] => 13632_5_
[17] => 37_2_
)
Doc: array_map()
Implement the loop at main array and increment in $i then concatenate $array_variable['scope'][$i].'_'.$array_variable['till'][$i].'_'.$array_variable['value'][$i].

Parsing a complex excel file using PHP Excel Library and retrieve data for email templates

I want to parse the following excel file using PHP Excel Library and put the data into email templates(PFA).
Here goes the corresponding code for parsing the data:
// Read your Excel workbook
try {
$inputFileType = PHPExcel_IOFactory::identify($target_file);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($target_file);
} catch(Exception $e) {
die('Error loading file "'.pathinfo($target_file,PATHINFO_BASENAME).'": '.$e->getMessage());
}
// Get worksheet dimensions
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
// Loop through each row of the worksheet in turn
for ($row = 1; $row <= $highestRow; $row++){
$val=array();
for ($col = 0; $col < $highestColumn; ++ $col) {
$cell = $worksheet->getCellByColumnAndRow($col, $row);
$val[] = $cell->getValue();
}
// Read a row of data into an array
$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
NULL,
TRUE,
FALSE);
// Insert row data array into your database of choice here
print_r(array_values($rowData));
The output is:
Array ( [0] => Array ( [0] => S No [1] => Hotel Name [2] => Room Category [3] => GuestHouse Id [4] => Hotel Email [5] => City [6] => state [7] => 2nd Feb [8] => 3rd Feb [9] => 4th Feb [10] => 5th Feb [11] => 6th Feb [12] => 7th Feb [13] => 8th Feb [14] => 9th Feb [15] => 10th Feb [16] => 11th Feb [17] => 12th Feb [18] => 13th Feb [19] => 14th Feb [20] => 15th Feb ) ) Array ( [0] => Array ( [0] => 1 [1] => Hotel 1 [2] => All [3] => 19 [4] => a#y.com [5] => Ahmedabad [6] => Gujarat [7] => 0 [8] => 0 [9] => 0 [10] => 0 [11] => 0 [12] => 0 [13] => 0 [14] => 0 [15] => 0 [16] => 0 [17] => 0 [18] => 0 [19] => 0 [20] => 0 ) ) Array ( [0] => Array ( [0] => [1] => [2] => Standard [3] => [4] => [5] => [6] => [7] => 0 [8] => 0 [9] => 0 [10] => 0 [11] => 0 [12] => 0 [13] => 0 [14] => 0 [15] => 0 [16] => 0 [17] => 0 [18] => 0 [19] => 0 [20] => 0 ) ) Array ( [0] => Array ( [0] => [1] => [2] => Superior [3] => [4] => [5] => [6] => [7] => 0 [8] => 0 [9] => 0 [10] => 0 [11] => 0 [12] => 0 [13] => 0 [14] => 0 [15] => 0 [16] => 0 [17] => 0 [18] => 0 [19] => 0 [20] => 0 ) ) Array ( [0] => Array ( [0] => 2 [1] => Hotel 2 [2] => All [3] => 18 [4] => y#a.in [5] => Mumbai [6] => Maharashtra [7] => 2 [8] => 3 [9] => 4 [10] => 4 [11] => 4 [12] => 4 [13] => 4 [14] => 4 [15] => 4 [16] => 4 [17] => 4 [18] => 4 [19] => 2 [20] => 3 ) ) Array ( [0] => Array ( [0] => [1] => [2] => Standard [3] => [4] => [5] => [6] => [7] => 0 [8] => 1 [9] => 2 [10] => 2 [11] => 2 [12] => 2 [13] => 2 [14] => 2 [15] => 2 [16] => 2 [17] => 2 [18] => 2 [19] => 0 [20] => 1 ) ) Array ( [0] => Array ( [0] => [1] => [2] => Superior [3] => [4] => [5] => [6] => [7] => 2 [8] => 2 [9] => 2 [10] => 2 [11] => 2 [12] => 2 [13] => 2 [14] => 2 [15] => 2 [16] => 2 [17] => 2 [18] => 2 [19] => 2 [20] => 2 ) ) Array ( [0] => Array ( [0] => 3 [1] => Hotel 3 [2] => All [3] => 199 [4] => m#mm.co.in [5] => Amravati [6] => Maharashtra [7] => 20 [8] => 20 [9] => 20 [10] => 20 [11] => 20 [12] => 20 [13] => 20 [14] => 20 [15] => 20 [16] => 20 [17] => 20 [18] => 20 [19] => 20 [20] => 20 ) ) Array ( [0] => Array ( [0] => [1] => [2] => Standard [3] => [4] => [5] => [6] => [7] => 10 [8] => 10 [9] => 10 [10] => 10 [11] => 10 [12] => 10 [13] => 10 [14] => 10 [15] => 10 [16] => 10 [17] => 10 [18] => 10 [19] => 10 [20] => 10 ) ) Array ( [0] => Array ( [0] => [1] => [2] => Superior [3] => [4] => [5] => [6] => [7] => 10 [8] => 10 [9] => 10 [10] => 10 [11] => 10 [12] => 10 [13] => 10 [14] => 10 [15] => 10 [16] => 10 [17] => 10 [18] => 10 [19] => 10 [20] => 10 ) ) Array ( [0] => Array ( [0] => 4 [1] => Hotel 4 [2] => All [3] => 35 [4] => a#c.net [5] => Lonavala [6] => Maharashtra [7] => 1 [8] => 1 [9] => 1 [10] => 1 [11] => 1 [12] => 1 [13] => 1 [14] => 1 [15] => 1 [16] => 1 [17] => 1 [18] => 1 [19] => 1 [20] => 1 ) ) Array ( [0] => Array ( [0] => [1] => [2] => Villa [3] => [4] => [5] => [6] => [7] => 1 [8] => 1 [9] => 1 [10] => 1 [11] => 1 [12] => 1 [13] => 1 [14] => 1 [15] => 1 [16] => 1 [17] => 1 [18] => 1 [19] => 1 [20] => 1 ) )
Now, what I want is after I have have this multi-dimensional associative array in place, I want to extract the data in such a way so as to get this expected output.
This is the place where I am stuck. I am unable to extract data properly because on one hand I need to skip empty null fields whereas on the other hand I need to skip the "All" field. Any help or suggestion is highly appreciated.

Sort an array contain dates in php

I have an array like thus i want to sort this array date-wise how to sort the this array
Array
(
[0] => 28/02/2016
[1] => 30/01/2016
[2] => 16/02/2016
[3] => 19/02/2016
[4] => 24/02/2016
[5] => 13/02/2016
[6] => 18/02/2016
[7] => 27/02/2016
[8] => 25/02/2016
[9] => 01/02/2016
[10] => 02/02/2016
[11] => 03/02/2016
[12] => 05/02/2016
[13] => 06/02/2016
[14] => 07/02/2016
[15] => 08/02/2016
[16] => 11/02/2016
[17] => 12/02/2016
)
I have used usort but it does not work in which i am wirting a function and and converting it to strtotime but it does not work .Any suggestion.
Try below solution:
$array = array
(
0 => '28/02/2016',
1 => '30/01/2016',
2 => '16/02/2016',
3 => '19/02/2016',
4 => '24/02/2016',
5 => '13/02/2016',
6 => '18/02/2016',
7 => '27/02/2016',
8 => '25/02/2016',
9 => '01/02/2016',
10 => '02/02/2016',
11 => '03/02/2016',
12 => '05/02/2016',
13 => '06/02/2016',
14 => '07/02/2016',
15 => '08/02/2016',
16 => '11/02/2016',
17 => '12/02/2016'
);
function sortFunction( $a, $b ) {
$date1 = DateTime::createFromFormat('d/m/Y', $a);
$date2 = DateTime::createFromFormat('d/m/Y', $b);
return $date1->getTimestamp() - $date2->getTimestamp();
}
usort($array, "sortFunction");
print_r($array);
output
Array
(
[0] => 30/01/2016
[1] => 01/02/2016
[2] => 02/02/2016
[3] => 03/02/2016
[4] => 05/02/2016
[5] => 06/02/2016
[6] => 07/02/2016
[7] => 08/02/2016
[8] => 11/02/2016
[9] => 12/02/2016
[10] => 13/02/2016
[11] => 16/02/2016
[12] => 18/02/2016
[13] => 19/02/2016
[14] => 24/02/2016
[15] => 25/02/2016
[16] => 27/02/2016
[17] => 28/02/2016
)
Try this using sort()
$array = array
(
0 => '28/02/2016',
1 => '30/01/2016',
2 => '16/02/2016',
3 => '19/02/2016',
4 => '24/02/2016',
5 => '13/02/2016',
6 => '18/02/2016',
7 => '27/02/2016',
8 => '25/02/2016',
9 => '01/02/2016',
10 => '02/02/2016',
11 => '03/02/2016',
12 => '05/02/2016',
13 => '06/02/2016',
14 => '07/02/2016',
15 => '08/02/2016',
16 => '11/02/2016',
17 => '12/02/2016'
);
foreach($array as $key=>$val) {
$date_arr=explode('/',$val);
$time_arr[$key]=strtotime($date_arr[2].'/'.$date_arr[1].'/'.$date_arr[0]);
}
sort($time_arr);
foreach($time_arr as $key=>$val) {
$array[$key]=date("d/m/Y", $val);
}
echo '<pre>'; print_r($array); echo '</pre>';
Output
Array
(
[0] => 30/01/2016
[1] => 01/02/2016
[2] => 02/02/2016
[3] => 03/02/2016
[4] => 05/02/2016
[5] => 06/02/2016
[6] => 07/02/2016
[7] => 08/02/2016
[8] => 11/02/2016
[9] => 12/02/2016
[10] => 13/02/2016
[11] => 16/02/2016
[12] => 18/02/2016
[13] => 19/02/2016
[14] => 24/02/2016
[15] => 25/02/2016
[16] => 27/02/2016
[17] => 28/02/2016
)

Enjin API (JSON) to PHP part 2

I'm trying to figure out how to get the data from http://www.natomilcorp.com/api/get-tags
But I doesn't work the way it was working with http://www.natomilcorp.com/api/get-users
<?php
$content = file_get_contents('http://natomilcorp.com/api/get-tags');
$array = json_decode($content, TRUE);
foreach ($array as $key => $value) {
}
?>
Should return something like : Major
There's the id for the rank + id of each user with that rank. How could I do that?
Data I'm trying to get.
Array ( [tags] => Array ( [766910] => Array ( [name] => Major [visible] => 2 [users] => Array ( [0] => 200159 ) ) [766912] => Array ( [name] => Captain [visible] => 2 [users] => Array ( [0] => 2261591 ) ) [766913] => Array ( [name] => 1st Lieutenant [visible] => 2 [users] => Array ( [0] => 9054053 ) ) [766914] => Array ( [name] => 2nd Lieutenant [visible] => 2 [users] => Array ( [0] => 8987889 ) ) [773490] => Array ( [name] => Sergeant First Class [visible] => 2 [users] => Array ( [0] => 7725577 ) ) [773492] => Array ( [name] => Sergeant [visible] => 1 [users] => Array ( [0] => 1060956 [1] => 7302252 [2] => 8757300 [3] => 8863799 [4] => 8965561 [5] => 9261041 ) ) [773493] => Array ( [name] => Corporal [visible] => 2 [users] => Array ( [0] => 3021405 [1] => 7007387 [2] => 9139763 [3] => 9213371 ) ) [773494] => Array ( [name] => Private First Class [visible] => 2 [users] => Array ( [0] => 2200849 [1] => 3641961 [2] => 9178511 [3] => 9261322 [4] => 9323849 [5] => 9389371 [6] => 9430088 ) ) [773495] => Array ( [name] => Private [visible] => 2 [users] => Array ( [0] => 114357 [1] => 261041 [2] => 304466 [3] => 549312 [4] => 1118346 [5] => 1710685 [6] => 2141867 [7] => 3211667 [8] => 3310027 [9] => 3553805 [10] => 4528862 [11] => 7379434 [12] => 8403949 [13] => 8428123 [14] => 8650774 [15] => 8910960 [16] => 9010718 [17] => 9141940 [18] => 9223268 [19] => 9276028 [20] => 9308336 [21] => 9324049 [22] => 9343007 [23] => 9379991 [24] => 9388650 [25] => 9388744 [26] => 9501913 ) ) [773499] => Array ( [name] => Recruit [visible] => 2 [users] => Array ( [0] => 89975 [1] => 205838 [2] => 384035 [3] => 1607344 [4] => 3131066 [5] => 6461552 [6] => 7126984 [7] => 7233456 [8] => 8594187 [9] => 9210020 [10] => 9319294 [11] => 9324467 [12] => 9368201 [13] => 9401020 [14] => 9401208 [15] => 9411271 [16] => 9412511 [17] => 9442152 [18] => 9472151 [19] => 9481048 [20] => 9507716 [21] => 9519155 [22] => 9519665 [23] => 9524202 [24] => 9524528 [25] => 9527256 [26] => 9528148 [27] => 9528464 [28] => 9532974 [29] => 9532993 ) ) [794713] => Array ( [name] => NMC Member [visible] => 0 [users] => Array ( [0] => 89975 [1] => 114357 [2] => 200159 [3] => 205838 [4] => 304466 [5] => 384035 [6] => 549312 [7] => 857679 [8] => 870831 [9] => 1060956 [10] => 1118346 [11] => 1607344 [12] => 1710685 [13] => 2141867 [14] => 2200849 [15] => 2261591 [16] => 3021405 [17] => 3131066 [18] => 3211667 [19] => 3310027 [20] => 3553805 [21] => 3641961 [22] => 4528862 [23] => 5888412 [24] => 6461552 [25] => 7007387 [26] => 7126984 [27] => 7233456 [28] => 7302252 [29] => 7379434 [30] => 7725577 [31] => 8403949 [32] => 8428123 [33] => 8594187 [34] => 8650774 [35] => 8757300 [36] => 8863799 [37] => 8910960 [38] => 8965561 [39] => 8987889 [40] => 9010718 [41] => 9017629 [42] => 9054053 [43] => 9139763 [44] => 9141940 [45] => 9178511 [46] => 9210020 [47] => 9213371 [48] => 9223268 [49] => 9261041 [50] => 9261322 [51] => 9276028 [52] => 9289688 [53] => 9308336 [54] => 9319294 [55] => 9323849 [56] => 9324049 [57] => 9324467 [58] => 9343007 [59] => 9361657 [60] => 9368201 [61] => 9379991 [62] => 9388650 [63] => 9388744 [64] => 9389371 [65] => 9401020 [66] => 9401208 [67] => 9411271 [68] => 9412511 [69] => 9430088 [70] => 9442152 [71] => 9472151 [72] => 9481048 [73] => 9501913 [74] => 9507716 [75] => 9519155 [76] => 9519665 [77] => 9524202 [78] => 9524528 [79] => 9527256 [80] => 9528148 [81] => 9528464 [82] => 9532974 [83] => 9532993 ) ) [905780] => Array ( [name] => Reserve / Inactive [visible] => 2 [users] => Array ( [0] => 1116431 [1] => 1146450 [2] => 1327008 [3] => 3488556 [4] => 4057254 [5] => 4109011 [6] => 4442271 [7] => 5075797 [8] => 6348486 [9] => 6727549 [10] => 7482138 [11] => 7669434 [12] => 7810956 [13] => 7813040 [14] => 7845349 [15] => 7873320 [16] => 8163829 [17] => 8610931 [18] => 8720229 [19] => 8758932 [20] => 8944586 [21] => 8988410 [22] => 9009221 [23] => 9016644 [24] => 9143121 ) ) [916781] => Array ( [name] => High Command [visible] => 2 [users] => Array ( [0] => 192868 ) ) [950454] => Array ( [name] => (AF) 2nd Lieutenant [visible] => 2 [users] => Array ( [0] => 870831 [1] => 5888412 [2] => 9017629 [3] => 9289688 [4] => 9361657 ) ) [950472] => Array ( [name] => (AF) 1st Lieutenant [visible] => 2 [users] => Array ( [0] => 857679 ) ) [964515] => Array ( [name] => 8 Week Service Ribbon 1A [visible] => 2 [users] => Array ( [0] => 857679 [1] => 3021405 [2] => 8428123 ) ) [964541] => Array ( [name] => 8 Week Service Ribbon 2A [visible] => 2 [users] => Array ( [0] => 7725577 ) ) [964552] => Array ( [name] => 8 Week Service Ribbon 4A [visible] => 2 [users] => Array ( [0] => 200159 ) ) [964580] => Array ( [name] => Altis War Service Ribbon [visible] => 2 [users] => Array ( [0] => 200159 [1] => 857679 [2] => 870831 [3] => 1060956 [4] => 2261591 [5] => 5888412 [6] => 7302252 [7] => 7725577 [8] => 8757300 [9] => 8863799 [10] => 8965561 [11] => 9054053 ) ) [964632] => Array ( [name] => Commanding Officers Commendation [visible] => 2 [users] => Array ( [0] => 2261591 [1] => 9054053 [2] => 9139763 [3] => 9261322 ) ) [964807] => Array ( [name] => Executive Officers Commendation [visible] => 2 [users] => Array ( [0] => 5888412 [1] => 8863799 [2] => 9017629 ) )
It should be
echo $array['tags'][$key]['name'];
You could see there is a tags key , so you need to add that too while accessing.
Working code..
<?php
$content = file_get_contents('http://natomilcorp.com/api/get-tags');
$array = json_decode($content, TRUE);
$key = "766910";
echo $array['tags'][$key]['name'];

Referencing an index in an array in SMARTY template

I have a variable that is an array in Smarty, and I am trying to figure out how to retrieve that information. The variable is called $COMMENTS and I did $COMMENTS|#print_r and this is what I got:
Array (
[0] => ModComments_CommentsModel Object (
[data:private] => Array (
[0] => 11686
[crmid] => 11686
[1] => 1679
[smcreatorid] => 1679
[2] => 1679
[smownerid] => 1679
[3] => 0
[modifiedby] => 0
[4] => ModComments
[setype] => ModComments
[5] =>
[description] =>
[6] => 2011-06-08 15:00:31
[createdtime] => 2011-06-08 15:00:31
[7] => 2011-06-08 15:00:31
[modifiedtime] => 2011-06-08 15:00:31
[8] => 2011-06-29 12:00:23
[viewedtime] => 2011-06-29 12:00:23
[9] =>
[status] =>
[10] => 0
[version] => 0
[11] => 1
[presence] => 1
[12] => 0
[deleted] => 0
[13] => 11686
[modcommentsid] => 11686
[14] => aasd
[commentcontent] => aasd
[15] => 6730
[related_to] => 6730
[16] =>
[parent_comments] =>
[17] => 11686
)
)
[1] => ModComments_CommentsModel Object (
[data:private] => Array (
[0] => 11685
[crmid] => 11685
[1] => 1679
[smcreatorid] => 1679
[2] => 1679
[smownerid] => 1679
[3] => 0
[modifiedby] => 0
[4] => ModComments
[setype] => ModComments
[5] =>
[description] =>
[6] => 2011-06-08 14:58:42
[createdtime] => 2011-06-08 14:58:42
[7] => 2011-06-08 14:58:42
[modifiedtime] => 2011-06-08 14:58:42
[8] =>
[viewedtime] =>
[9] =>
[status] =>
[10] => 0
[version] => 0
[11] => 1
[presence] => 1
[12] => 0
[deleted] => 0
[13] => 11685
[modcommentsid] => 11685
[14] => comment
[commentcontent] => comment
[15] => 6730
[related_to] => 6730
[16] =>
[parent_comments] =>
[17] => 11685
)
)
[2] => ModComments_CommentsModel Object (
[data:private] => Array (
[0] => 6731
[crmid] => 6731
[1] => 1679
[smcreatorid] => 1679
[2] => 1679
[smownerid] => 1679
[3] => 0
[modifiedby] => 0
[4] => ModComments
[setype] => ModComments
[5] =>
[description] =>
[6] => 2010-11-02 10:15:06
[createdtime] => 2010-11-02 10:15:06
[7] => 2010-11-02 10:15:06
[modifiedtime] => 2010-11-02 10:15:06
[8] =>
[viewedtime] =>
[9] =>
[status] =>
[10] => 0
[version] => 0
[11] => 1
[presence] => 1
[12] => 0
[deleted] => 0
[13] => 6731
[modcommentsid] => 6731
[14] => Test comment
[commentcontent] => Test comment
[15] => 6730
[related_to] => 6730
[16] =>
[parent_comments] =>
[17] => 6731
)
)
)
I am trying to retrieve the 11686 number from that. Any help? I have tried $COMMENTS[0][data:private][0] but that didn't work.
Any help greatly appreciated :)
First, put print_r() output into <pre> tags so it is readable.
Array (
[0] => ModComments_CommentsModel Object (
[data:private] => Array (
[0] => 11686
[crmid] => 11686
[1] => 1679
[smcreatorid] => 1679
[2] => 1679
...
)
)
...
)
You're trying to access the first object in your array, $COMMENTS[0]. Since that it is object, and your data property is private, you cannot access it in Smarty. You would have to edit the ModComments_CommentsModel class to give you access to either the data property or the crmid key of the property.
Example:
class ModComments_CommentsModel {
// ...
public function CrmId(){
return $this->data['crmid'];
}
// ...
}
{* template *}
{$COMMENTS[0]->CrmId()}
{* might have to assign before using method call *}
{assign var='comment' value=$COMMENTS[0]}
{$comment->CrmId()}

Categories