<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Serov.eu &#187; array</title>
	<atom:link href="https://serov.eu/?feed=rss2&#038;tag=array" rel="self" type="application/rss+xml" />
	<link>https://serov.eu</link>
	<description>Блог программиста</description>
	<lastBuildDate>Thu, 30 Apr 2026 12:31:53 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1.15</generator>
	<item>
		<title>Сортировка данных в php</title>
		<link>https://serov.eu/?p=136</link>
		<comments>https://serov.eu/?p=136#comments</comments>
		<pubDate>Wed, 16 Mar 2016 10:10:53 +0000</pubDate>
		<dc:creator><![CDATA[Evgen]]></dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">https://serov.eu/?p=136</guid>
		<description><![CDATA[Например, у нас есть какой то набор данных, в stdClass. Он многомерный, и его надо сортировать, например по дате. Делаем первое array_walk_recursive($t, function(&#38;$t) {return $t-&#62;date=strtotime($t-&#62;Created);}); Здесь мы создаем дополнительный элемент, к каждому набору записи, в которую записываем unix timestamp для сравнения. Далее, сортируем набор данных по полю date usort($t, function($a, $b){ return ($b-&#62;date - $a-&#62;date); &#8230; <a href="https://serov.eu/?p=136" class="more-link">Читать далее <span class="screen-reader-text">Сортировка данных в php</span></a>]]></description>
				<content:encoded><![CDATA[<p>Например, у нас есть какой то набор данных, в stdClass. Он многомерный, и его надо сортировать, например по дате.<br />
Делаем первое</p>
<pre>array_walk_recursive($t, function(&amp;$t) {return $t-&gt;date=strtotime($t-&gt;Created);});
</pre>
<p>Здесь мы создаем дополнительный элемент, к каждому набору записи, в которую записываем unix timestamp для сравнения.<br />
Далее, сортируем набор данных по полю date</p>
<pre>usort($t, function($a, $b){
return ($b-&gt;date - $a-&gt;date);
});
</pre>
<p>Не знаю, насколько это быстрее foreach или for, пока у меня не было несколько миллиардов записей, а до 1000 записей, существенной разницы не увидим.</p>
<p>Для более сложной сортировки, лучше использовать array_multisort, но это уже только для массива, хотя stdClass позволяет работать как с массивом.</p>
]]></content:encoded>
			<wfw:commentRss>https://serov.eu/?feed=rss2&#038;p=136</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
