Ver Mensaje Individual
  #14 (permalink)  
Antiguo 26/11/2010, 13:12
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Problema con array

Bueno se me ocurrió que con expresiones regulares lo puedes hacer aún más compacto
Código PHP:
Ver original
  1. <?php
  2. $archivo = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['SCRIPT_FILENAME']) . '/lang/prueba.po';
  3. $leer = file($archivo, FILE_IGNORE_NEW_LINES);
  4.  
  5. $bool = true;
  6. $n = 0;
  7. $arr = array();
  8.  
  9. foreach($leer as $l){
  10.     preg_match('/^(\w+(?:\[\d\])?).*/is', $l, $m);
  11.     if(!empty($m[1])){ $arr[$n][$m[1]] = $m[0]; $bool = false; }
  12.     elseif(!$bool && empty($m[1])){ $bool = true; $n++; }
  13. }
  14. foreach($arr as $a){
  15.     echo (!empty($a['msgid']) ? $a['msgid'] . '<br />' : '')
  16.         . (!empty($a['msgstr']) ? $a['msgstr'] . '<br />' : '')
  17.         . (!empty($a['msgstr[0]']) ? $a['msgstr[0]'] . '<br />' : '')
  18.         . (!empty($a['msgid_plural']) ? $a['msgid_plural'] . '<br />' : '')
  19.         . (!empty($a['msgstr[1]']) ? $a['msgstr[1]'] . '<br />' : '') . '<br />';
  20. }

Tal vez, exista alguna forma aún más compacta pero con el poco tiempo que tengo pude hacer este ejemplo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos