Nano Hash - криптовалюты, майнинг, программирование

создать многомерный массив с помощью цикла foreach

Я пытаюсь создать многомерный массив в PHP, используя цикл foreach. Вот код до сих пор:

$levels = array('low', 'medium', 'high');
$attributes = array('fat', 'quantity', 'ratio', 'label');

foreach ($levels as $key => $level):
       foreach ($attributes as $k =>$attribute):
             $variables[] = $attribute . '_' . $level;
       endforeach;
endforeach;

echo '<pre>' . print_r($levels,1) . '</pre>';   
echo '<pre>' . print_r($variables,1) . '</pre>';    

Результатом этого кода является одномерный массив; однако это не является целью. Желаемый массив должен выглядеть так:

OutputGoal

Как следует изменить код для достижения цели?


  • Вы пытаетесь объединить два массива в один массив или создать новый массив из данных в этих двух массивах? 09.08.2013

Ответы:


1

Вы почти пришли. Просто добавьте уровень к созданию массива :)

$levels = array('low', 'medium', 'high');
$attributes = array('fat', 'quantity', 'ratio', 'label');

foreach ($levels as $key => $level):
       foreach ($attributes as $k =>$attribute):
             $variables[$level][] = $attribute . '_' . $level; // changed $variables[] to $variables[$level][]
       endforeach;
endforeach;

echo '<pre>' . print_r($levels,1) . '</pre>';   
echo '<pre>' . print_r($variables,1) . '</pre>';  

Вывод

Array
(
    [low] => Array
        (
            [0] => fat_low
            [1] => quantity_low
            [2] => ratio_low
            [3] => label_low
        )

    [medium] => Array
        (
            [0] => fat_medium
            [1] => quantity_medium
            [2] => ratio_medium
            [3] => label_medium
        )

    [high] => Array
        (
            [0] => fat_high
            [1] => quantity_high
            [2] => ratio_high
            [3] => label_high
        )

)
08.08.2013
  • У меня есть эта проблема. Мне нужно что-то подобное из foreach. $arrOptions = array( array( 'value' => 'value1', 'label' => 'label1' ) ); Значение и метка Foreach — это одна и та же переменная. Я пытаюсь $arrOptions = array(); foreach($daterange as $option) { $arrOptions[value] = $option->format; $arrOptions[label] = $option->format; } 24.03.2016

  • 2
    $levels = array('low', 'medium', 'high');
    $attributes = array('fat', 'quantity', 'ratio', 'label');
    
    foreach ($levels as $key => $level){
        foreach ($attributes as $k =>$attribute){
                 $variables[$level][] = $attribute . '_' . $level;
       }
    }
    
    print_r($variables);
    

    http://codepad.viper-7.com/xlvZ2W

    08.08.2013

    3
  • Если вы редактируете, в этом ответе только для кода отсутствует образовательное объяснение. 23.06.2020
  • Я переформатировал код в своем собственном ответе семилетней давности. Мне нечего добавить. :) 23.06.2020
  • Вы могли бы объяснить, почему код OP дал сбой и/или как вашему коду удалось создать ожидаемую структуру вывода. 23.06.2020
  • @TomaszKowalczyk спасибо за этот ответ; это вытащило меня из надира кодирования, преобразовав многомерный массив в CSV. 17.10.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..