Хорошо, у меня есть массив $parentArray
, через который я зацикливаюсь для отображения определенных полей. В этом l oop у меня есть variable
, называемый $specialCases
, который должен сохранять другие определенные поля, такие как foo
и bar
. Позже в рамках начального цикла $parrentArray
я хотел бы провести l oop через массив $specialCases
для рендеринга foo
и bar
.
Как я могу это сделать?
Ниже мое испытание, но оно не работает. Я получаю только 1
значение в массиве $specialCases
вместо ожидаемого 2
.
<?php foreach( $this->parrentArray as $strName => $arrField ): ?>
<?php if ( $this->{$strName} !== null && $this->{$strName} !== '' ): ?>
<?php if ( is_array( $this->{$strName} ) ): ?>
<?php $this->{$strName} = implode( ', ', array_map( function( $varValue ) {
if ( is_string ( $varValue ) ) return $varValue;
if ( is_array ( $varValue ) ) return $varValue['title'];
return $varValue;
}, $this->{$strName} )) ?>
<?php endif; ?>
<?php if ( is_string( $this->{$strName} ) ): ?>
<?php if(!in_array($strName, $ignore)): ?>
<?php if( $strName == 'foo' || $strName == 'bar'): ?>
<?php $specialCases[] = $strName ?>
<?php var_dump($specialCases) ?>
<?php endif; ?>
<?php if( $strName !== 'foo'): ?>
<?php if( $strName !== 'bar'): ?>
<div class="ctlg_entity <?= $strName ?>">
<?php if( $strName !== 'description'): ?>
<span class="ctlg_entity_name"> <?= $arrField['title']; ?>:</span>
<?php endif; ?>
<div class="ctlg_entity_value">
<?php if ($strName == "foo" || $strName == "bar"): ?>
<?php echo count($specialCases); ?>
<?php foreach ($specialCases as $key => $value): ?>
<!-- My issue is here, for some reasin $specialCases only has 1 value instead of an expected 2 -->
<span class="filter_value special">Filter value comes here,</span>
<?php endforeach; ?>
<?php endif; ?>
<span class="detail_value"><?= $this->{$strName}; ?></span>
</div>
</div>
<?php endif; ?>
<?php endif; ?>
<?php endif; ?>
<?php endif; ?>
<?php endif; ?>
<?php endforeach; ?>