php - read - Bucle Foreach(¿o hacer mientras tal vez?)-Quiere devolver solo un registro dependiendo de la página
php sentencia foreach (2)
Si no conoce la clave y desea el elemento actual de la matriz, puede usar:
$challengename = current($this->challengenames);
O el primer elemento de la matriz:
$challengename = reset($this->challengenames);
O el último elemento de la matriz:
$challengename = end($this->challengenames);
Solo tenga en cuenta que el final y el reinicio cambiarán la ubicación del puntero de la matriz.
Resolvió esto con el código editado a continuación. ¡Gracias a todos los que ayudaron!
Tengo dos registros en mi db. Cada registro tiene 6 campos (challengeId, partnerName, code, challengeTitle, description, image_url). Selecciono un partnerName dado de la vista de página principal para ir a la vista de página de mi hijo.
Estaba usando un ciclo foreach y tengo problemas. Ahora he sacado mi ciclo foreach y lo he reemplazado por <?php $challengename = $this->challengenames[$k] = current($this->challengenames); ?>
<?php $challengename = $this->challengenames[$k] = current($this->challengenames); ?>
pero ahora no puede hacer que la página secundaria muestre los valores de challengeTitle que corresponden a ''partnerName'' que elegí en mi página principal. Siempre proporciona el valor de desafío del título del primer registro en lugar del actual. Necesito saber cómo hacer que el valor de challengeTitle cambie dependiendo de qué partnerName elijo en mi página principal.
¿Lo arreglará haciendo esto una instrucción while loop o if en el controlador de la página secundaria?
Cualquier consejo (y cambios de código) es muy apreciado.
Controlador de página padre
public function viewChallengesAction(){
//get instance for request
$request = JO_Request::getInstance();
//get activated challenge names and set variables
$myChallenge=$this->getChallenge();
$this->view->challengenames = array();
foreach($myChallenge AS $k=>$challengename){
$this->view->challengenames[$k][''href''] = WM_Router::create($request->getBaseUrl() . ''?module=challenges&controller=index&action=yourChallenge?code='' . $challengename[''partnerName'']);
$this->view->challengenames[$k][''partnerName''] = $challengename[''partnerName''];
}
VISTA INFANTIL
<div id="defaultcontainerwrapper" class="maxwidth">
<?php $challengename = $this->challenge; ?>
<header>
<h1>
<div class="list">
<span>Welcome to </span><?php echo $challengename[''partnerName'']; ?><span>''s Beat Waste Challenge!</span>
</div>
</h1>
</header>
<?php } ?>
</div>
CONTROLADOR INFANTIL
public function yourChallengeAction(){
//get activated challenge names and set variables
$request = JO_Request::getInstance();
$myChallenge=$this->getChallenge();
$code = $request->getQuery("code");
$this->view->challengenames = array();
foreach($myChallenge AS $k=>$challengename){
if ($challengename[''partnerName''] == $code)
{
$this->view->challenge = $challengename;
break;
}
}
<?php $challengename = $this->challengenames[0] ?>
Te estás perdiendo un último; intente agregarlo agaign; intente abajo:
<?php $challengename = $this->challengenames[0]; ?>