<?php
/*
2)La siguiente página Web le permite a una persona ingresar una cadena:
<html>
<head>
<title>Recuperatorio</title>
</head>
<body>
<h1>Ingrese una cadena</h1>
<form action="tres.php" method="get">
<input type="text" name="x">
<input type="submit" value="Enviar">
</form>
</body>
</html>

Realizar un programa en php que verifique que la cadena corresponda a un número octal. Una cadena es un número octal si todos sus caracteres son: dígitos del cero al siete. Eliminar los espacios en blanco al comienzo o el final de la cadena ingresada.
En un comentario, indicar cómo se llama el archivo.
Ejemplos de salida:
Ud ingresó la cadena 04253761. Es un número octal.
Ud. ingresó la cadena 1295089. No es un número octal.
*/

//El archivo se llama tres.php
$cadena = trim($_GET['x']);
$caracteresValidos = '01234567';
//Recorremos la cadena carácter por carácter:
for($i=0; $i<strlen($cadena); $i++) {
    //El caracter actual, ¿NO esta entre los caracteres validos?
    if(strpos($caracteresValidos,$cadena[$i]) === false) {
        echo "Ud. ingresó la cadena $cadena. No es un número octal.<br>";
        //Si ya encontramos un carácter no válido, no tiene sentido seguir buscando:
        break;        
    }
}
//Si *no* salió por el "break", entonces debería haber llegado al final de la cadena:
if ($i == strlen($cadena) ) {
echo "Ud. ingresó la cadena $cadena. Es un número octal.<br>";
}
?>

<?php
//Otra forma, de manera exhaustiva:
$cadena = trim($_GET['x']);
$esValido = true;
//Recorremos la cadena carácter por carácter:
for($i=0; $i<strlen($cadena); $i++) {
switch($cadena[$i]) {
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
            break;
        default:
            $esValido = false;
            break 2; //Interrumpe el switch y también el for.
    }
}
if($esValido) {
    echo "Ud. ingresó la cadena $cadena. Es un número octal.<br>";
}
else {
    echo "Ud. ingresó la cadena $cadena. No es un número octal.<br>";
}
?>

<?php
/*
2) Se tiene un array indexado llamado $datos. Cada uno de los elementos de ese array es a su vez un array asociativo de tres elementos, cuyas claves son ['ciudad'] (contiene el nombre de la ciudad),['capital'] (contiene TRUE si la ciudad es capital de provincia y FALSE si no lo es) y ['poblacion'] (contiene la población de la ciudad). Se desea conocer:
* Cuál es la capital de provincia menos poblada del array.
* Cuánto suma el total de los habitantes de todas las ciudades.
Un ejemplo de cómo podría ser el array está publicado en http://www.escuelaurquiza.edu.ar/jmarquez/prog2/recup.html
*/
//COPIADO DE LA CONSIGNA, DESDE AQUI...
$datos = array(
    array('ciudad'=> 'Santa Fe', 'capital'=>true,'poblacion'=>500),
    array('ciudad'=> 'Rosario', 'capital'=>false,'poblacion'=>1325),
    array('ciudad'=> 'Paraná', 'capital'=>true,'poblacion'=>247),
    array('ciudad'=> 'Rafaela', 'capital'=>false,'poblacion'=>83),
    array('ciudad'=> 'Victoria', 'capital'=>false,'poblacion'=>32),
    array('ciudad'=> 'Corrientes', 'capital'=>true,'poblacion'=>342),
    array('ciudad'=> 'Resistencia', 'capital'=>true,'poblacion'=>452),
    array('ciudad'=> 'Goya', 'capital'=>false,'poblacion'=>66),
    array('ciudad'=> 'Formosa', 'capital'=>true,'poblacion'=>234),
    array('ciudad'=> 'Clorinda', 'capital'=>false,'poblacion'=>47)
);
//La población está expresada en miles de personas.
//Para mostrarlo:
foreach ($datos as $unaCiudad) {
echo $unaCiudad['ciudad'] . ' - ';
var_dump($unaCiudad['capital']);
echo ' - ' .$unaCiudad['poblacion'] . '<br>';
}
// ...HASTA AQUI.
$min=900000;
$suma=0;
foreach($datos as $unaCiudad) {
    $suma += $unaCiudad['poblacion'];
    //Si la ciudad actual es capital, entonces la comparo:
    if($unaCiudad['capital']) {
        if($unaCiudad['poblacion'] < $min) {
            $min = $unaCiudad['poblacion'];
            $nombreMin = $unaCiudad['ciudad'];
        }
    }
}

echo "El total de habitantes es $suma, y la capital menos poblada es $nombreMin";
?>