Как отсортировать массив по последнему элементу в строке

kumich

Новичок
Господа, я нисколечки не сомневаюсь, что вы все отличные профессионалы, и вполне возможно, через некоторое время и мне мои вопросы будут казаться легкими, так как кажутся легкими те вопросы, над которыми я ломал голову некоторое время назад. Сейчас же для сделать эту задачу является проблемой, и я прошу помощи, а не глубокомысленных размышлений по поводу лексических особенностей моего языка и остальных пространственных изречений. Помощи по типу, возьми такую конструкцию и попробуй применить вот так вот. Я не прошу написать мне код, но и намеки подобного рода мне мало чем помогают. Ну не знаю я как решить этот вопрос, что поделать. Знал бы - не спрашивал. Все что я могу - это посчитать такой массив "вручную". То есть не такой массив - а меньший. Потому что тот большой, и я привел лишь небольшую его часть. Там несколько ключей с последущими несколькими строками не двумя 0 и 1, а двумя, тремя и больше.
А простой массив я могу посчитать (преобразовать) "вручную".

По типу:

$data[4][] = array(1, 2);
$data[4][] = array(5, 3);
$data[2][] = array(2, 2);

$data1[4] = array($data[4][0][0] + $data[4][1][0], $data[4][0][1] + $data[4][1][1]);
$data1[2] = $data[2];

Большего я пока сделать не смогу.

Фанат

Твой вопрос чересчур общий. Если вообще - то могу и помещал. Если применительно к данному вопросу - то нет. Не знаю куда и чего "циклить".
 

Фанат

oncle terrible
Команда форума
ну как же не знаешь?
у тебя один массив содержит много маленьких.
вот и перебирай в одном цикле большой массив, получая маленькие, а внутри эти маленькие перебирай их.
один foreach внутри другого. что тут непонятного?
 

kumich

Новичок
Фанат

я писал выше, что такой перебор делал раньше.

К примеру вот так.

foreach ($firms as $obj_key => $obj)
{

echo '<TABLE cellSpacing=0 cellPadding=8 width=150 bgColor=#ffffff border=1>';
echo '<TR><TD vAlign="top" align="middle" bgColor=#efefef border=0>';
echo "$obj_key";
echo '</td></tr>';
foreach ($obj as $obj_key1 => $obj1)
{
echo '<TR><TD vAlign="top" align="middle" border=0>';
echo "$obj1";
echo '</td></tr>';
}
echo '</table><br>';


для меня проблема в другом. В сложении значений из двух разных строк подмассива. Если сложить все значения одной такой строки - я могу (нашел функцию array_sum).

Если сложить небольшой массив - я могу - записав в "абсолютном виде" ссылки на каждый элемент и сплюсовать их (как я делал постом выше, прописав где надо 4, где надо 0 и 1.

А вот в общем виде, без таких "абсолютных" значений я не знаю как записать. Чтобы программе не было разницы, складывать только значения у которых общим является ключ 4, или чтобы эта операция распространялась и на более расширенный массив с ключем 5, чтобы не имело значения в подмассиве только две строки 0 и 1 или в подмассиве этих строк 10.
 

Фанат

oncle terrible
Команда форума
чтобы не имело значения в подмассиве только две строки 0 и 1 или в подмассиве этих строк 10, массив надо перебирать в цикле.

В сложении значений из двух разных строк подмассива
НУ ТЫ ЖЕ САМ ПИСАЛ!
[0] + [0][0]

какая проблема сложить $a[$obj_key][$obj_key1] + [0][$obj_key1]???
 

kumich

Новичок
Фанат


Заработало. И посчитало, (даже с опцией больше нуля) и затем посортировало. Огромное спасибо за помощь!
 
Сверху