Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разбор массива
 
 автор: Alph[p]a   (01.12.2010 в 13:20)   письмо автору
 
 

есть массив вида -


Array
(
    [00000010] => Array
        (
            [0] => Автоматические выключатели
            [1] => Автоматические выключатели
        )

    [00000011] => Array
        (
            [0] => Автоматические выключатели
            [1] => Автоматические выключатели
        )

    [00000052] => Array
        (
            [0] => Автоматические выключатели
            [1] => Автоматические выключатели
        )

    [00000053] => Array
        (
            [0] => Автоматические выключатели
            [1] => Автоматические выключатели
        )

    [00000054] => Array
        (
            [0] => Автоматические выключатели
            [1] => Автоматические выключатели
        )

    [00000097] => Array
        (
            [0] => АВВГ
            [1] => Кабель
        )

    [00000098] => Array
        (
            [0] => АВВГ
            [1] => Кабель
        )



ну и т.д надо вывести вот так и без дублей


% Категория % // 0 
% Подкатегория % // 1
$key 


какие мысли?

  Ответить  
 
 автор: Trianon   (01.12.2010 в 13:26)   письмо автору
 
   для: Alph[p]a   (01.12.2010 в 13:20)
 

<?

foreach($list as $key => $r) echo "% $r[0] % // 0
$r[1] % // 1
\$
$key
"
;

  Ответить  
 
 автор: Alph[p]a   (01.12.2010 в 14:05)   письмо автору
 
   для: Trianon   (01.12.2010 в 13:26)
 

все с дублями ..
на выходе надо все $key определенной подкатегории которая принадлежит категории!

  Ответить  
 
 автор: Trianon   (01.12.2010 в 15:11)   письмо автору
 
   для: Alph[p]a   (01.12.2010 в 14:05)
 

что-то я не понял?
Вы про мысли спрашивали?
Мысли после вашего вопроса были самые нецензурные.
Я в ответе оставил лишь лексически нормативную часть.
И Вы говорите, что еще что-то надо?
Мне не надо всяко.

  Ответить  
 
 автор: Красная_шляпа   (01.12.2010 в 14:03)   письмо автору
 
   для: Alph[p]a   (01.12.2010 в 13:20)
 

рекурсия вложенные массивы

  Ответить  
 
 автор: Alph[p]a   (01.12.2010 в 14:06)   письмо автору
 
   для: Красная_шляпа   (01.12.2010 в 14:03)
 

слишком абстрактно... примеры хотябы

  Ответить  
 
 автор: Alph[p]a   (01.12.2010 в 15:03)   письмо автору
 
   для: Alph[p]a   (01.12.2010 в 14:06)
 

up

  Ответить  
 
 автор: Trianon   (01.12.2010 в 15:13)   письмо автору
 
   для: Alph[p]a   (01.12.2010 в 14:06)
 

Вы всерьез полагаете, что Ваша постановка задачи была более конкретна?

  Ответить  
 
 автор: Alph[p]a   (01.12.2010 в 15:44)   письмо автору
 
   для: Trianon   (01.12.2010 в 15:13)
 

тогда так - нужно придумать как каждый key прицепить к подкатегории и убрать дубли

  Ответить  
 
 автор: Trianon   (01.12.2010 в 16:03)   письмо автору
 
   для: Alph[p]a   (01.12.2010 в 15:44)
 

тогда логичным представляется перетолкать данные вида
$list = array(
111 => array('cat1','subcat1-1'),  
112 => array('cat1','subcat1-1'),  
113 => array('cat1','subcat1-1'),  
121 => array('cat1','subcat1-2'),  
122 => array('cat1','subcat1-2'),  
123 => array('cat1','subcat1-2'),  
211 => array('cat2','subcat2-1'),  
212 => array('cat2','subcat2-1'),  
213 => array('cat2','subcat2-1'),  
221 => array('cat2','subcat2-2'),  
222 => array('cat2','subcat2-2'),  
223 => array('cat2','subcat2-2'))

в массив вида



$cat = array(
  'cat1' => array(
    'subcat1-1'  => array(111,112,113),
    'subcat1-2'  => array(121,122,123)
    ),
  'cat2' => array(
    'subcat2-1'  => array(211,212,213),
    'subcat2-2'  => array(221,222,223)
    )
  );

  Ответить  
 
 автор: Alph[p]a   (01.12.2010 в 16:11)   письмо автору
 
   для: Trianon   (01.12.2010 в 16:03)
 

было бы вообще прекрасно если бы еще код показали как из этого

key/subcat/cat
"00000055","Автоматические выключатели","Автоматические выключатели"
"00000056","Автоматические выключатели","Автоматические выключатели"
"00000097","АВВГ","Кабель"
"00000098","АВВГ","Кабель"
"00000099","АВВГ","Кабель"


сделать таково вида массив как было предожено в пред. посте.

  Ответить  
 
 автор: Alph[p]a   (02.12.2010 в 08:03)   письмо автору
 
   для: Alph[p]a   (01.12.2010 в 16:11)
 

очень нужно!!! help me!

  Ответить  
 
 автор: Красная_шляпа   (02.12.2010 в 11:03)   письмо автору
 
   для: Alph[p]a   (02.12.2010 в 08:03)
 

Array([0] =>([data] => "Категория 1", [childs] => Array([0] =>([data] => "Категория 1.1", [childs] =>Array())) , [1] => Array([data] => "Категория 2", [childs] =>Array()))

  Ответить  
 
 автор: Красная_шляпа   (02.12.2010 в 11:08)   письмо автору
 
   для: Красная_шляпа   (02.12.2010 в 11:03)
 

Вообщем получится как бы дерево но только без корня, ну короче лес. Рекурсивный обход через передачу массива функции по ссылке.

  Ответить  
 
 автор: Красная_шляпа   (02.12.2010 в 11:13)   письмо автору
 
   для: Красная_шляпа   (02.12.2010 в 11:08)
 

Файл enter.php дипломного проекта

<?php
// by alph[p]a
ob_start();
require_once 
'inc/top.html';
if (!isset(
$_POST['username']))
{
echo 
'<form action="enter.php" method="POST">
Имя пользователя: <input name="username" type="text"><br>
Пароль: <input name="passw" type="password"><br>
<input name="sbm" type="submit">
</form>'
;
}
else 
{
    foreach (
$_POST as $value)
    {
        
$value=mysql_escape_string($value); // и что мы тут делаем? ггг sql инъекция на лицо
    
}
    require_once 
'up_mysql.class.php';
    require_once 
'config.php';
    
$name=$_POST['username'];
    
$passw=$_POST['passw'];
    
$mysql=new UpToMySQL(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_BASE);    
    
$mysql->SelectMySQL('user','*','WHERE name=\''.$name.'\' AND pass=\''.$passw.'\'');

    if (
mysql_num_rows($mysql->result)==0) exit('Ошибка!');
    else 
    {
    @
setcookie('user',$name);
    echo 
'Вход выполнен! <a href="index.php">На главную!</a>';
    }
}
require_once 
'inc/bottom.html';
ob_end_flush();
?>

  Ответить  
 
 автор: Красная_шляпа   (02.12.2010 в 11:21)   письмо автору
 
   для: Красная_шляпа   (02.12.2010 в 11:13)
 



<?php
class UpToMySQL
{
    

/*

Ну во-первых var это в php4 было, сейчас же нужно исп. public/private/protected, а во-вторых 
$host, $name, $password, $database как бы не нужны
$this->host=$host;
$this->name=$name;
$this->password=$pass;
$this->database=$database;
в этом смысла нет
mysql_query('SET NAMES \'cp1251\'',$this->connect); тоже херня какая-то

*/

    // члены класса
    // идентификатор соединения
    
var $connect;
    
// возвращенный набор записей (через mysql_query)
    
var $result;
    
// настройки для подключения к БД
    // имя хоста
    
var $host;
    
//  имя
    
var $name;
    
// пароль
    
var $password;
    
// имя БД
    
var $database;
    
    
// конструктор
    // соединение с БД
    
function __construct($host,$name,$pass,$database)
    {
        
// устанавливаем члены класса
        
$this->host=$host;
        
$this->name=$name;
        
$this->password=$pass;
        
$this->database=$database;
        
        
// соединяемся с БД
        
$this->connect=@mysql_connect($this->host,$this->name,$this->password);
        
mysql_query('SET NAMES \'cp1251\'',$this->connect);
        
// статус
        
if ($this->connect==false
        
$this->ErrorMySQL('Подключение к БД '.$this->host.' невозможно! <br>'.mysql_error());
        else 
        {
            
// выбираем БД
            
$this->SelectDB();
        }
        
    }
    
    
// метод выбора БД
    
private function SelectDB ()
    {
        
// выбираем
        
$select_db=@mysql_select_db($this->database,$this->connect);
        
        
// статус
        
if ($select_db==false)
        {
            
            
$this->ErrorMySQL('Выбрать базу '.$this->database.' невозможно!'.mysql_error());
            
            return 
false;
        }
            return 
true;
    }
    
    public function 
SelectMySQL ($table,$fields,$options='')
    {
        
// запрос
        
$select='SELECT '.$fields.' FROM '.$table.' '.$options;
        
$this->result=mysql_query($select,$this->connect);
        
        return 
$this->result;
        
mysql_free_result($this->result);
        
    }
    
    
// метод удаления записей
    
public function DeleteMySQL  ($table,$options='')
    {
        
// запрос на удаление записей (записи)
        
$select='DELETE FROM '.$table.' '.$options;
        
$this->result=mysql_query($select,$this->connect);
        
        return 
$this->result;
        
mysql_free_result($this->result);
    }
    
    
// метод добавления записей
    
public function InsertMySQL ($table,$options='')
    {
        
$select='INSERT INTO '.$table.' SET '.$options;
        
$this->result=mysql_query($select,$this->connect);
        return 
$this->result;
        
        
mysql_free_result($this->result);
    }
    
    
// метод изменения записи
    
public function UpdateMySQL ($table,$options='')
    {
        
$select='UPDATE '.$table.' SET '.$options;
        
$this->result=mysql_query($select,$this->connect);
        return 
$this->result;
        
        
mysql_free_result($this->result);
    }
    
    
// метод обработки ошибок
    
function ErrorMySQL ($string)
    {
        echo 
$string;
    }
    
    
// деструктор
    
function __destruct()
    {
        @
mysql_close($this->connect);
    }
    
}

?>

  Ответить  
 
 автор: psychomc   (02.12.2010 в 13:41)   письмо автору
 
   для: Красная_шляпа   (02.12.2010 в 11:13)
 

интересно что это он эскейпирует 8-/

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования